如何通过Python Shell下载YouTube字幕?

vhmi4jdf  于 2022-12-15  发布在  Python
关注(0)|答案(1)|浏览(104)

我一直在尝试如何通过API下载YouTube字幕,但官方说明是针对命令行代码定制的,而我试图在Python Shell中完成这一操作。
目前我一直在关注此页面,但没有效果-https://developers.google.com/youtube/v3/docs/captions/list
什么似乎绊倒我是存储和args相关的代码,即使经过大量的谷歌搜索没有任何意义给我。
参见以下存储代码:

storage = Storage("%s-oauth2.json" % sys.argv[0]) 
#nowhere on the page does it refer to this oauth2.json file  
credentials = storage.get()
if credentials is None or credentials.invalid:    
    credentials = run_flow(flow, storage, args) 
#if credentials is none why would storage still be needed as an argument?

在本页的后半部分,都是在args.parser中添加参数,这似乎是命令行的东西,我不想使用,因为我是从Python Shell中工作的。
我也一直在阅读官方页面获得授权OAuth 2.0的YouTube API,所以我可以重写这段代码自己,但我不能通过这一部分:https://developers.google.com/api-client-library/python/auth/web-app

  • 步骤5:交换刷新令牌和访问令牌的授权码Web服务器收到授权码后,可以交换访问令牌的授权码。在回调页面上,使用google-authlibrary验证授权服务器响应。然后,使用flow.fetch_tokenmethod交换访问令牌响应中的授权码:*
state = flask.session['state']

这是我从上面的代码语句中得到的错误:

  • 运行时错误:在请求上下文之外工作。这通常意味着您试图使用需要活动HTTP请求的功能。有关如何避免此问题的信息,请参阅测试文档。*

从本质上讲,通过对Oauth 2.0过程的大量研究,我认为我无法获得flow.fetch_token来将我的授权码交换为访问令牌。
我已经测试了我所有的证书,所以他们是好的,这是得到授权,我挣扎。
这是目前为止我在第一个链接上编写的字幕API代码的简化版本:

import google.oauth2.credentials
import google_auth_oauthlib.flow
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file("//client_secret_file.json", scopes=["https://www.googleapis.com/auth/youtube.force-ssl"])
flow.redirect_uri = "http://localhost:8080"
authorization_url, state = flow.authorization_url(access_type="offline", include_granted_scopes="true")
flask.redirect(authorization_url)

[响应929字节[302找到]]

state = flask.session['state']

[运行时错误]
总结:
我如何从Python Shell中的代码下载YouTube字幕?我已经设置了我的凭据,只是不能让Web服务器给予我访问令牌,这样我就可以执行其余的代码。我会使用captions.list链接上的代码,但我无法通过Storage code语句和args.arguments,这是为命令行编写的。

7kjnsjlb

7kjnsjlb1#

以下解决方案不再起作用,我建议切换到my other StackOverflow answer

使用Python 3,你可以通过访问URL轻松获取XML格式的YouTube视频字幕:https://video.google.com/timedtext?lang=en&v=VIDEO_ID
下面是另一个URL,列出了给定YouTube视频可用的字幕:http://video.google.com/timedtext?type=list&v=VIDEO_ID

相关问题