Quantcast
Viewing latest article 2
Browse Latest Browse All 2

Sacar el nombre del archivo en Python3

estoy trabajando en un programa el cual descarga los vídeo de youtube y los convierte a archivo de audio de cualquier formato, ya sea por dándole un enlace o un término de búsqueda y tengo un problema con la recogida del nombre del archivo descargado, ya que se puede descargar en diversos formatos de vídeo (principalmente mkv, mp4, webm).

Lo único que consigo es que el nombre concuerde parseando el nombre del vídeo desde la página pero me sigue faltando el formato de salida. Hasta ahora tengo esa parte del código así:

from bs4 import BeautifulSoupimport urllib.request, urllib.parseimport subprocessimport ffmpyimport requestsdef name_generator(term):    url = term    webpage_url = "http://www.youtube.com/results?search_query="+ url.replace("", "+")    webpage_url = urllib.parse.quote(webpage_url, safe='/:?+=', encoding="utf-8", errors="strict")    webpage_request = urllib.request.urlopen(webpage_url)    status_code = webpage_request.getcode()    if status_code == 200:        list_of_names = []        html = BeautifulSoup(webpage_request, "html.parser")        videos = html.find_all('div', {'class': 'yt-lockup-content'})        for i, video in enumerate(videos):            if len(list_of_names) < 5:                name = video.find('a')['title']                formatted_text = "{0}".format(name)                list_of_names.append(formatted_text)    return list_of_namesurl = input("Introduce la URL: ")comando = "youtube-dl {} -o %(title)s.%(ext)s".format(url)subprocess.call(comando, shell=True)question = input("Quieres convertir el audio?[S/n]: ").lower()if question == "s":    request = input("En que formato lo quires?: ")    nombre = name_generator(url)[0]    try:        ff=ffmpy.FFmpeg(            inputs={"{}.mp4".format(nombre): None},            outputs={"{}.{}".format(nombre, request): None}        )        ff.run()    except:        ff=ffmpy.FFmpeg(            inputs={"{}.webm".format(nombre): None},            outputs={"{}.{}".format(nombre, request): None}        )        ff.run()else:    print("Gracias por usar el programa")

Solo me falta que el programa pueda manejar la entrada de los vídeos en los 3 formatos principales que anteriormente he mencionado y lo tendría terminado. Si alguien me hecha un cable le estaría agradecido.


Viewing latest article 2
Browse Latest Browse All 2

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>