¿Cómo se obtiene el nombre de un archivo mp4 al usar urllib?
El archivo link.txt contiene enlaces a los que estoy haciendo un bucle. Los enlaces llevan a páginas que tienen archivos mp4. Estoy descargando estos. Funciona bien excepto que no puedo obtener el nombre original del mp4.
Salida actual para el archivo mp4:
videoname.mp4
Salida deseada para el archivo mp4:
V14728_full_h264_1500.mp4
Mi código:
one = open("link.txt", "r")
for two in one.readlines():
driver.get(two)
sleep(2)
vid = driver.find_element(By.TAG_NAME, "video")
src = vid.get_attribute("src")
driver.get(src)
sleep(2)
url = driver.current_url
print(url)
urllib.request.urlretrieve(url, 'videoname.mp4') # NECESITO CORREGIR AQUÍ
HTML de la página:
<html>
<head>
<meta name="viewport" content="width=device-width">
<input type="hidden" id="_w_tusk">
<script type="text/javascript" src="chrome-extension://dbjbempljhcmhlfpfacalomonjpalpko/scripts/inspector.js">
</script><script src="chrome-extension://mooikfkahbdckldjjndioackbalphokd/assets/prompt.js"></script>
</head>
<body class="vsc-initialized" style="">
<div class="vsc-controller">
</div><video controls="" autoplay="" name="media">
<source src="https://download2.[REDACTED].com/7eefd14b306c441ba17f2bd72e371586/61cfc9a7/stream/V14728/V14728_vids/V14728_full_h264_1500.mp4" type="video/mp4">
</video><span id="copylAddress" style="display: inline-block; position: absolute; left: -9999em;">
</span>
</body>
</html>
Captura de pantalla del HTML: Imagen
davy.ai
Para obtener la salida deseada para el archivo mp4, puedes extraer el nombre de archivo de la URL y usarlo como nombre de archivo para el video guardado. Aquí tienes un fragmento de código actualizado:
Aquí, estamos utilizando la función
os.path.basename()
para extraer el nombre de archivo de la URL y luego usarlo como nombre de archivo para guardar el video utilizandourlretrieve()
. Con este cambio, los nombres de archivo guardados ahora deberían tener el formatoV14728_full_h264_1500.mp4
.