如何使用 python 更改 youtube_dl 输出位置

Lau*_*ceY 5 python youtube-dl

我编写了一个 python 脚本来下载 YouTube URL 列表,并且我想按我要下载的主题更改输出文件夹。

例如,当我下载播放列表时,我希望将此播放列表中的视频下载到当前播放列表命名的文件夹中。但如果它是一个频道,则其中的视频应放入名为 bt it's uploader 的文件夹中。

我如何知道我正在下载的 URL 是播放列表还是频道?由于选项是在下载开始之前传递的,因此我找不到方法来执行此操作。

这是我的代码:

import sys
import yt_dlp

URLS = [
  'playlist_url',
  'channel_url',
]

dl_ops = {
  'outtmpl': 'd:/YouTube/%(uploader)s/%(title)s.%(ext)s'
}

retry_count = 0

def download_video(urls):
  try:
    with yt_dlp.YoutubeDL(dl_ops) as ydl:
      ydl.download(urls)
  except KeyboardInterrupt:
    print('Interruptted by user')
    sys.exit()
  except Exception as e:
    print(e)
    global retry_count
    if retry_count == 50:
      print('Retry count exceeded')
      sys.exit()
    retry_count += 1
    download_video(urls)

if __name__ == '__main__':
  download_video(URLS)
Run Code Online (Sandbox Code Playgroud)

小智 3

dl_ops = {
      'outtmpl': 'd:/YouTube/%(uploader)s/%(title)s.%(ext)s'
    }
Run Code Online (Sandbox Code Playgroud)

您可以看到,在这一行中您指定的路径为 D:/YouTube/ {uploader name} / {title of the video} 。{您指定的扩展名}。为了将所有视频更改为进入同一文件夹,您只需删除上传者后面的“/”,这样您的视频就不会为每个上传者提供单独的文件夹。

因此,如果您想让文件名与视频名一样,您将执行以下操作:

'outtmpl': 'D:/YouTube/%(title)s.%(ext)s'
Run Code Online (Sandbox Code Playgroud)

因此,对于名为“Youtube vlog part 321”的视频,文件路径将为:

D:/YouTube/Youtube vlog part 321.mp4
Run Code Online (Sandbox Code Playgroud)

或您选择的任何其他格式(mp3、wav、avi、mkv...)。