gpt4 book ai didi

api - 检索YouTube用户添加到所有播放列表的所有视频

转载 作者:行者123 更新时间:2023-12-03 05:43:59 25 4
gpt4 key购买 nike

我想使用YouTube数据API的方式遇到了麻烦。我有一个用户帐户,试图通过将来自其他 channel 的视频添加到基于类别的大约15个播放列表之一中来充当“聚合器”。我的问题是,我无法将所有这些视频归为一个供稿,因为它们属于各种YouTube用户。我想将它们全部合并到一个列表中,以便可以按最新和最受欢迎的顺序对主列表进行排序,以填充Web应用程序中的不同 View 。

如何获得用户已添加到其任何播放列表的所有视频的列表?

YouTube必须跟踪这类内容,因为如果您进入“http://www.youtube.com/”上任何用户页面的“订阅源”部分,它就会为您提供一系列 Activity ,其中包括添加到播放列表中的视频。

需要明确的是,我不想仅获取该用户上传的视频列表,因此http://gdata.../<user>/uploads无法正常工作。由于存在许多不同的播放列表,因此http://gdata.../<user>/playlists也不起作用,因为每次我要检查新视频时,我都需要提出约15个请求。

似乎无法检索用户已添加到其所有播放列表的所有视频的列表。有人可以想到一种可能被我忽略的方法吗?

最佳答案

此类操作可用于从播放列表中检索YouTube链接。它仍然需要改进。

import urllib2
import xml.etree.ElementTree as et
import re
import os

more = 1
id_playlist = raw_input("Enter youtube playlist id: ")
number_of_iteration = input("How much video links: ")
number = number_of_iteration / 50
number2 = number_of_iteration % 50
if (number2 != 0):
number3 = number + 1
else:
number3 = number
start_index = 1

while more <= number3:
#reading youtube playlist page
if (more != 1):
start_index+=50

str_start_index = str(start_index)
req = urllib2.Request('http://gdata.youtube.com/feeds/api/playlists/'+ id_playlist + '?v=2&&start-index=' + str_start_index + '&max-results=50')
response = urllib2.urlopen(req)
the_page = response.read()

#writing page in .xml
dat = open("web_content.xml","w")
dat.write(the_page)
dat.close()

#searching page for links
tree = et.parse('web_content.xml')
all_links = tree.findall('*/{http://www.w3.org/2005/Atom}link[@rel="alternate"]')

#writing links + attributes to .txt
if (more == 1):
till_links = 50
else:
till_links = start_index + 50

str_till_links = str(till_links)
dat2 = open ("links-"+ str_start_index +"to"+ str_till_links +".txt","w")
for links in all_links:
str1 = (str(links.attrib) + "\n")
dat2.write(str1)
dat2.close()

#getting only links
f = open ("links-"+ str_start_index +"to"+ str_till_links +".txt","r")
link_all = f.read()
new_string = link_all.replace("{'href': '","")
new_string2 = new_string.replace("', 'type': 'text/html', 'rel': 'alternate'}","")
f.close()

#writing links to .txt
f = open ("links-"+ str_start_index +"to"+ str_till_links +".txt","w")
f.write(new_string2)
f.close()

more+=1

os.remove('web_content.xml')
print "Finished!"

关于api - 检索YouTube用户添加到所有播放列表的所有视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com