为了账号安全,请及时绑定邮箱和手机立即绑定

如何将允许的服务列表传递给 youtube-dl?

如何将允许的服务列表传递给 youtube-dl?

撒科打诨 2022-12-27 17:18:12
我希望 youtube-dl 只能从允许的服务列表中下载内容。像 ['youtube','twitch']。还有什么方法可以设置自定义错误消息?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您可以对 进行 monkeypatch youtube_dl.extractor._ALL_CLASSES,因此 youtube_dl 不会知道您指定的任何其他提取器。


import youtube_dl


def get_list_of_extractors(extractor_modules):

    extractors = []

    for module in extractor_modules:

        list_of_extractors = [

            getattr(module, name) for name in dir(module) 

            if name.endswith('IE') and name != 'GenericIE' and name.find("Base") == -1

        ]

        extractors = extractors + list_of_extractors

    return extractors


list_of_extractors = get_list_of_extractors([youtube_dl.extractor.youtube, youtube_dl.extractor.tiktok])

youtube_dl.extractor._ALL_CLASSES = list_of_extractors


ydl = youtube_dl.YoutubeDL({})


ydl.extract_info(

    'https://www.youtube.com/watch?v=BaW_jenozKc',

    download=False # We do not need to download

)


# causes youtube_dl.utils.DownloadError, because instagram extractor is not in the list

ydl.extract_info(

    'https://instagram.com/p/aye83DjauH',

    download=False # We do not need to download

)


查看完整回答
反对 回复 2022-12-27
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信