3
我試圖檢索特定用戶組訂閱數和訂閱者數。我正在使用YouTube API for Python。檢索特定用戶組訂閱數和訂閱者數
我爲訂閱數寫了以下代碼。此代碼從列表中逐一讀取用戶的ID,統計其訂閱數量,並將ID和數字寫入CSV文件。但它不能正常工作。在少數第一位用戶停止在文件中寫入數字之後,數字並非都是正確的。 我認爲應該有比這個混亂更簡單的東西。
謝謝,我感謝您的建議和意見。
import os
import gdata.youtube
import gdata.youtube.service
import time
def GetUserUrl (username):
yt_service = gdata.youtube.service.YouTubeService()
uri = 'https://gdata.youtube.com/feeds/api/users/%s/subscriptions?max-results=50&start-index=1' % username
subscription_feed = yt_service.GetYouTubeSubscriptionFeed(uri)
T1 = GetUserSub(subscription_feed)
final = 0
j = 1
total = 0
while j<800:
j = j + 50
sj = str(j)
uri = 'https://gdata.youtube.com/feeds/api/users/%s/subscriptions?max-results=50&start-index=' % username+sj
subscription_feed = yt_service.GetYouTubeSubscriptionFeed(uri)
T2 = GetUserSub(subscription_feed)
total = total + T2
final = total + T1
usersub.writelines([str(username),',',str(final),'\n'])
def GetUserSub (subscription_feed):
i = 0
for entry in subscription_feed.entry:
i = i +1
return i
usersub = open ('usersubscribtions.csv','w')
users=[]
userlist = open("user_ids_noduplicates1.txt","r")
text1 = userlist.readlines()
for l in text1:
users.append(l.strip().split()[0])
x = 0
while (x<len(users)):
try:
GetUserUrl(users[x])
time.sleep(0.4)
x = x+1
except:
usersub.writelines([str(users[x]),'\n'])
x = x+1
pass
usersub.close()
感謝馬特的答案。這聽起來很直接,但我不完全明白它是如何工作的。我瀏覽了文檔:https://developers.google.com/youtube/v3/docs/channels。但我不明白我應該如何設置參數(我認爲我應該將用戶標識分配給'id')以供https://www.googleapis.com/youtube/v3/channels使用,並撥打電話。 – DMD 2013-02-19 12:33:23
查看我的答案,看看如何獲得頻道的ID,當你只有他們的用戶名:http://stackoverflow.com/questions/14760497/search-youtube-videos-by-author/14761305#14761305。用戶的ID是這種格式:UCDsO-0Yo5zpJk575nKXgMVA – 2013-02-19 18:15:32