我编写了一个Python脚本来下载一系列YouTube URL,我想通过我正在下载的主题更改输出文件夹。
例如,当我下载播放列表时,我希望该播放列表中的视频被下载到以当前播放列表命名的文件夹中。但是如果它是一个频道,则其中的视频应该放在以其上传者命名的文件夹中。
我如何知道我正在下载的URL是播放列表还是频道?由于选项在下载开始之前传递,因此我找不到一种方法来做到这一点。
以下是我的代码:
例如,当我下载播放列表时,我希望该播放列表中的视频被下载到以当前播放列表命名的文件夹中。但是如果它是一个频道,则其中的视频应该放在以其上传者命名的文件夹中。
我如何知道我正在下载的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)
download=False, process=False
调用extract_info
方法来获取有关 URL 的一些信息,但是频道和播放列表的_type
似乎都是playlist
。 - D Malanyt-dlp
中似乎不可能区分playlist
和channel
,因为它们都被视为playlist
。我在 Reddit 上找到了一种替代方法,使用playlist_title
,它会输出当前的channel
或playlist
名称,这可能是最好的方法适合我。 - LaurenceY