1

YouTube データ API の使用方法で壁にぶつかりました。カテゴリに基づいて、約 15 の再生リストの 1 つに他のさまざまなチャネルからビデオを追加することによって、「アグリゲータ」として機能しようとしているユーザー アカウントがあります。私の問題は、これらすべての動画を 1 つのフィードにまとめられないことです。これらの動画はさまざまな YouTube ユーザーに属しているためです。それらすべてを 1 つのリストにまとめたいので、そのマスター リストを最新のものと最も人気のあるもので並べ替えて、Web アプリにさまざまなビューを設定できます。

ユーザーがプレイリストに追加したすべての動画のリストを取得するにはどうすればよいですか?

「http://www.youtube.com/」のユーザー ページの「フィード」セクションにアクセスすると、再生リストに追加されたビデオを含む一連のアクティビティが得られるため、YouTube はこの種のものを追跡する必要があります。

明確にするために、このユーザーだけがアップロードした動画のリストを取得したくないので、機能しませhttp://gdata.../<user>/uploadsん。多数の異なるプレイリストがあるhttp://gdata.../<user>/playlistsため、新しいビデオをチェックするたびに約 15 のリクエストを行う必要があるため、どちらも機能しません。

ユーザーがすべてのプレイリストに追加したすべての動画のリストを取得する方法はないようです。私が見落としていたかもしれないこれを行う方法を誰かが考えることができますか?

4

1 に答える 1

0

プレイリストから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!"
于 2012-12-27T02:09:09.920 に答える