【问题标题】:How to subscribe with youtube api?如何使用 youtube api 订阅?
【发布时间】:2018-05-03 05:21:06
【问题描述】:

https://developers.google.com/youtube/v3/code_samples/apps-script#subscribe_to_channel

你好,

我不知道如何通过发布请求订阅 youtube 频道。我不想使用如上所示的 YoutubeSubscriptions。我很想通过一个 api 密钥,但似乎无法弄清楚。有什么建议吗?

【问题讨论】:

    标签: node.js youtube


    【解决方案1】:

    如果您不想使用 YoutubeSubscriptions,您必须在登录 youtube 帐户后获取session_token

    session_token 存储在隐藏的输入标签中: document.querySelector('input[name=session_token]').value

    或全文搜索XSRF_TOKEN字段,对应值为session_token,参考正则: const regex = /\'XSRF_TOKEN\':(.*?)\"(.*?)\"/g

    以下是 Python 中的实现:

    def YouTubeSubscribe(url,SessionManager):
    while(1):
        try:
            html = SessionManager.get(url).content
            session_token = (re.findall("XSRF_TOKEN\W*(.*)=", html , re.IGNORECASE)[0]).split('"')[0]
            id_yt = url.replace("https://www.youtube.com/channel/","")
            params = (('name', 'subscribeEndpoint'),)
            data = [
              ('sej', '{"clickTrackingParams":"","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"subscribeEndpoint":{"channelIds":["'+id_yt+'"],"params":"EgIIAg%3D%3D"}}'),
              ('session_token', session_token+"=="),
            ]
            response = SessionManager.post('https://www.youtube.com/service_ajax', params=params, data=data)
            check_state = json.loads(response.content)['code']
            if check_state == "SUCCESS":
                return 1
            else:
                return 0
        except Exception as e:
            print "[E] YouTubeSubscribe:"+ str(e)
            pass
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多