我正在尝试使用Python 3.8和youtube_dl 2020.3.24从Youtube下载歌曲。但奇怪的是,我尝试下载的大多数歌曲都无法下载。我说的是99%的歌曲。 那些可以下载的歌曲会收到来自youtube_dl的以下错误:
错误:无法下载视频数据:HTTP错误403:Forbidden
值得一提的是,这种情况是突然发生的,而我没有更改任何代码。在此之前,一切正常运行。我有朋友也运行了相同的代码,但他们没有遇到这个错误。
我正在尝试使用Python 3.8和youtube_dl 2020.3.24从Youtube下载歌曲。但奇怪的是,我尝试下载的大多数歌曲都无法下载。我说的是99%的歌曲。 那些可以下载的歌曲会收到来自youtube_dl的以下错误:
错误:无法下载视频数据:HTTP错误403:Forbidden
值得一提的是,这种情况是突然发生的,而我没有更改任何代码。在此之前,一切正常运行。我有朋友也运行了相同的代码,但他们没有遇到这个错误。
同样的问题出现多次......
解决方案: youtube-dl --rm-cache-dir
问题原因: 有时我会下载包含大量视频的播放列表,并强制停止下载。下次运行命令以恢复下载时,就会出现403问题。
目前,缓存目录仅用于存储带有混淆签名的YouTube播放器。由于播放列表中的所有视频都使用简单签名。
播放列表缓存是检测更改后的标题或更改后的播放列表的明显方法。
看起来我已经自己解决了问题。 清除缓存后错误消失了。
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
try:
ydl.cache.remove()
ydl.download([youtube_link])
except youtube_dl.DownloadError as error:
pass
欢迎提供有关此操作原理的任何信息