Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import multiprocessing
- from yt_dlp import YoutubeDL
- YDL_OPTS = {
- 'format': 'bestaudio/best',
- 'outtmpl': f'./dw2/[%(channel)s] %(title)s - %(id)s.%(ext)s',
- 'noplaylist': True,
- 'ignoreerrors': True,
- # 'quiet': True,
- 'postprocessors': [{
- 'key': 'FFmpegExtractAudio',
- 'preferredcodec': 'mp3',
- 'preferredquality': '192',
- }]
- }
- class Cancion:
- def __init__(self, info: dict) -> None:
- self._info = info
- self.titulo = info['title']
- self.album = info['channel']
- self.artista = ";".join(info['artist'].split(",")) if "artist" in info else info['channel']
- self.url = info['webpage_url']
- def descargar(self) -> None:
- ydl = YoutubeDL(YDL_OPTS)
- ydl.download(self.url)
- def descargar(cancion: Cancion):
- cancion.descargar()
- if __name__ == "__main__":
- YDL = YoutubeDL(YDL_OPTS)
- playlist_url = 'https://www.youtube.com/playlist?list=PLdr0SQOzbC6fFL3jH173V78WRnkYsTt7L'
- info = YDL.extract_info(playlist_url, download=False)
- canciones = [Cancion(info_cancion) for info_cancion in info['entries'] if info_cancion != None]
- pool = multiprocessing.Pool(10)
- for cancion in canciones:
- pool.apply_async(descargar, [cancion])
- pool.close()
- pool.join()
Advertisement
Add Comment
Please, Sign In to add comment