python - Youtube V3 API 不对视频进行排序
问题描述
所以我一直在使用 youtube api 来抓取一个频道。一切正常,直到 3 天前(03/15/2019)结果不再排序。看来不管我在order参数里放什么,结果都是一样的。谁能告诉我为什么它不起作用?这是代码片段:
import re
import os
import json
import MySQLdb
from pytube import YouTube
import urllib
import isodate
import sys
def get_all_video_in_channel(channel_id):
api_key = '<MY KEY>'
video_url = 'https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id={}&key={}'
first_url = 'https://www.googleapis.com/youtube/v3/search?key={}&channelId={}&part=snippet,id&order=date&maxResults=50'.format(api_key, channel_id) #order by date but won't work
res = []
url = first_url
while True:
inp = urllib.urlopen(url)
resp = json.load(inp)
vidIds = []
for jobject in resp['items']:
if jobject['id']['kind'] == "youtube#video":
vidIds.append(jobject['id']['videoId'])
vidreq = urllib.urlopen(video_url.format(",".join(vidIds),api_key))
vidres = json.load(vidreq)
for vidjson in vidres['items']:
res.append(vidjson)
if (len(res) >= 50):
break
try:
next_page_token = resp['nextPageToken']
url = first_url + '&pageToken={}'.format(next_page_token)
except:
break
return res
c_id = 'UCycyxZMoPwg9cuRDMyQE7PQ'
episodes = get_all_video_in_channel(c_id)
编辑:我做了更多的研究,人们说 API 确实无法正常工作,因为 Youtube 删除了新西兰的拍摄视频,它很快就会再次正常工作。
解决方案
我建议您查看答案https://stackoverflow.com/a/55220182/8327971。这是 Google 已知和承认的问题:https ://issuetracker.google.com/issues/128673552 。
推荐阅读
- tailwind-css - 如何使用 Tailwind CSS 不重叠组件?
- codeigniter - 自定义基本 URL Codeigniter
- c - 将输入附加到链表而不再次获得相同的输入 - C
- javascript - 在 Safari 中打印时我的页面显示为空白
- c - 致命错误:linux/mount.h:没有这样的文件或目录
- c++ - 如何使用 C++11 中的可变参数非类型模板参数解决此问题?
- javascript - 打开 ExcelJS 生成的 XLSX 文件时出现警告
- r - 使用循环将字符串从列传递到函数 - R
- python - Python + Spatialite + Virualknn
- awk - 如何总结重复的字符串