所以,我在尝试python,我遇到了一个奇怪的问题。我试图看看是否一个YT视频id是有效的,这部分;https://www.youtube.com/watch?v=**QB7ACr7pUuE**,它总是打印404,即使有一个有效的url。
代码:
import requests
def check_video_url(video_id):
checker_url = "https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
video_url = checker_url + video_id
request = requests.get(video_url)
return request.status_code == 200
和
testId = "QB7ACr7pUuE"
check_video_url(video_id=testId)
print(str(status))
我没有得到任何错误。什么好主意吗?
看看你的代码,你没有检查从check_video_url
返回的值:
import requests
def check_video_url(video_id):
checker_url = (
"https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
)
video_url = checker_url + video_id
request = requests.get(video_url)
return request.status_code == 200
testId = "QB7ACr7pUuE"
print(check_video_url(video_id=testId)) # <-- Here I print the returned value
打印:
True
testId = "QB7ACr7pUuExxx" # <--- non-existent video ID
print(check_video_url(video_id=testId))
打印:
False
EDIT:将返回值放入变量:
testId = "QB7ACr7pUuExxx"
status = check_video_url(video_id=testId)
if status:
print("Valid ID")
else:
print("Invalid ID")
添加@Andrej的答案。我建议你使用request.ok并回复你的信息
ok -如果status_code小于400返回True,否则返回False
import requests
def check_video_url(video_id):
checker_url = "https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
video_url = checker_url + video_id
request = requests.get(video_url)
return request.ok
testId = "QB7ACr7pUuE"
status = check_video_url(video_id=testId)
if status:
print("Valid")
else:
print("Not Valid")