我正在使用pafy模块检索youtube视频音频的url。 Pafy本身使用youtube dl模块连接到youtube。 视频Id在url部分:'/watch?v=视频ID'
我存储了这些视频的videoId,但有时一个视频不再可用,因此我需要进行检查。 我试图实施的检查未能捕捉到一些边缘情况,比如我国对这段视频的版权禁令。在
我已经试过两件事了。 使用youtube oEmbed API和youtube官方API。在
import requests
YT_API_KEY='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
answers = []
answers2 = []
def isValidVid(vId):
add = f'https://www.youtube.com/oembed?format=json&url=https://www.youtube.com/watch?v={str(vId)}'
answer = requests.get(add)
answers.append(answer)
state = answer.ok
if not state:
print(f'{vId} has become invalid ')
return state
def isValidVid2(vId):
add = f'https://www.googleapis.com/youtube/v3/videos?part=id&id={vId}&key={YT_API_KEY}'
answer = requests.get(add)
answers2.append(answer)
state = answer.ok
if not state:
print(f'{vId} has become invalid ')
return state
vIds=['x26LZrX_vuI', #copyright blocked in my country
'tRqCOIsTx8M', #works fine
]
for vid in vIds:
isValidVid(vid)
isValidVid2(vid)
for a,b in zip(answers,answers2):
print(a.content.split(','),'\n')
print(b.content.split(','),'\n'*2)
运行此截取的结果将得到以下输出(抱歉,看起来很难看):
^{pr2}$如果我在使用validationfunctions之后使用pafy来检索音频资源的url,那么在使用youtube dl时会出现一个错误,我认为这与提供无效视频Id时会出现的错误相同:
mrl = pafy.new(vIds[0]).url
OSError: ERROR: HTTP is not supported.
我想有更多的陷阱比版权禁令,如私人视频,如果你有一些技巧,我正在听!在
谢谢你的帮助!在
目前没有回答
相关问题 更多 >
编程相关推荐