yt-dlp 'rate-limit' 未在 Python 脚本中限制速度

yt-dlp 'rate-limit' not throttiling speed in Python script

我已将 yt-dlp 作为我的 Python 脚本的一部分实施,它运行良好,但我无法使用速率限制功能。 如果您 运行 来自 CLI 的相同命令正确限制了速率,有人能告诉我正确的语法吗?

我尝试了几种组合,例如 rate-limit、limit-rate 0.5m、500k、500KiB、500,none 似乎有效

        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 中的其他选项可以正常工作

希望我们可以解析正确的语法,而不是必须实施 Trickle 或限制套接字

如有帮助,谢谢

查看 source code,您会发现您正在寻找的选项称为 ratelimit。它的值应该是一个浮点数:

ydl_opts = {
        'ratelimit': 500000
    }

with yt_dlp.YoutubeDL(params=ydl_opts) as ydl:
    ydl.download([link]) 

crawfr 的回答是正确的。但不是随机搜索源代码,所有选项都由 doscstrings 记录。 ratelimit 可以在 docstring of FileDownloader class

中找到

因为它在文档字符串中,如果您不想手动查看源文件,您也可以使用 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.
...

PS: 由于没有足够的声誉来评论,因此写为答案