我已经实现了yt-dlp作为我的Python脚本的一部分,它工作得很好,但我无法让速率限制功能工作。如果您从CLI运行相同的命令,速率是正确的,谁能告诉我正确的语法?
我尝试了几种组合,如速率限制,限制速率0.5m,500k,500KiB,500,似乎都不起作用
ydl_opts = {
'limit-rate': '500k',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([link])
我在这里使用的是文档;https://github.com/yt-dlp/yt-dlp,但我感到困惑,因为CLI命令可以工作,而不是嵌入式脚本版本。
我也试过将-替换为_,但仍然没有效果,你有什么想法吗?ydl_opts中的其他选项可以正常工作
希望我们可以解决正确的语法,而不是必须实现滴流或节流套接字
如果你能帮上忙,谢谢
发布于 2021-11-07 17:07:44
查看source code,您会发现您正在寻找的选项名为ratelimit
。它的值应该是一个浮点数:
ydl_opts = {
'ratelimit': 500000
}
with yt_dlp.YoutubeDL(params=ydl_opts) as ydl:
ydl.download([link])
发布于 2021-11-16 17:18:52
crawfr的答案是正确的。但是,不是随机地搜索源代码,所有的选项都是由doscstrings记录的。可以在docstring of FileDownloader
class中找到ratelimit
因为它在文档字符串中,所以如果您不想手动遍历源文件,也可以使用python help
来检索它
>>> from yt_dlp import FileDownloader
>>> help(FileDownloader)
Help on class FileDownloader in module yt_dlp.downloader.common:
class FileDownloader(builtins.object)
| FileDownloader(ydl, params)
|
| File Downloader class.
...
| ratelimit: Download speed limit, in bytes/sec.
...
附言:写作作为答案,因为没有足够的声誉来评论
https://stackoverflow.com/questions/69871651
复制相似问题