2013-02-07 84 views
2

我正在使用YouTube API 3.0並希望按作者搜索視頻。我怎麼做到這一點?按作者搜索YouTube視頻

我正在使用python客戶端庫。

+0

我在探索API第3版,但無法找到筆者查詢參數,無論是在搜索或視頻API。但是v2在視頻API中有作者參數。 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters https://developers.google.com/youtube/v3/docs/videos/list – Ibrahim

+0

您可能想要發佈您在API2中所做的事情,以便我們對你想要做的事有個更好的想法。此外,如果您發佈有關您正在嘗試解決的整體問題的更多信息,我們可能可以避免任何[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the- xy問題)s – inspectorG4dget

+0

見http://stackoverflow.com/questions/3857917/python-search-playlists-on-youtube –

回答

5

在YouTube數據API v3中,您需要從用戶頻道中找到UploadsPlaylist,然後查找該頻道的PlaylistItems。

因此,例如,如果您想查找GoogleDevelopers上傳內容,請先找到他們的channel_id。

如果不知道用戶的頻道了,您必須對搜索資源的調用(有一種設置爲「通道」)找到它:

https://www.googleapis.com/youtube/v3/search?part=id&maxResults=1&q=GoogleDevelopers&type=channel&key={YOUR_API_KEY}

返回:

{ 
"kind": "youtube#searchListResponse", 
"etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/fm4P2RLxOAO0xdASI5BagD86H8A\"", 
"pageInfo": { 
    "totalResults": 21, 
    "resultsPerPage": 1 
}, 
"nextPageToken": "CAEQAA", 
"items": [ 
    { 
    "id": { 
    "kind": "youtube#channel", 
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw" 
    }, 
    "kind": "youtube#searchResult", 
    "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/q4hYefapiMoagc7b_3bYaVZvSJo\"" 
    } 
] 
} 

正如你可以看到,他們的渠道ID = UC_x5XG1OV2P6uZZ5FSM9Ttw

請對信道資源的contentDetais一部分打電話找他們的上傳播放列表:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=UC_x5XG1OV2P6uZZ5FSM9Ttw&key={YOUR_API_KEY}

將返回此:

{ 
"kind": "youtube#channelListResponse", 
"etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/ZouMU1qBRkF6DgacOLHE88Xk144\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
    { 
    "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw", 
    "kind": "youtube#channel", 
    "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/khrrkvk8Tl0XWRZoN66zqloSJM4\"", 
    "contentDetails": { 
    "relatedPlaylists": { 
    "uploads": "UU_x5XG1OV2P6uZZ5FSM9Ttw" 
    } 
    } 
    } 
] 
} 

正如你可以看到,他們的上傳播放列表ID爲UU_x5XG1OV2P6uZZ5FSM9Ttw

調用PlaylistItems re源獲得通過Google代碼上傳的視頻:

https://www.googleapis.com/youtube/v3/playlistItems?part=id%2Csnippet%2CcontentDetails&playlistId=UU_x5XG1OV2P6uZZ5FSM9Ttw&key={YOUR_API_KEY}

+0

馬特,謝謝你的詳細回覆。但我在這裏有一個小問題,那就是你傳遞了q = GoogleDevelopers,這意味着搜索所有頻道。如果我們增加最大結果https://www.googleapis.com/youtube/v3/search?part=id&maxResults=10&q=GoogleDevelopers&type=channel&key={YOUR_API_KEY}它會向我們展示更多結果 – Ibrahim

+2

我與一些Google員工進行了交談關於這個最後一週,他們向我保證,這是從他們的用戶名中獲取頻道ID的最佳方式。這對我來說似乎也有點奇怪,但他們告訴我,如果您的查詢直接匹配頻道的用戶名,它將始終是第一個結果。我只是希望它被記錄在案.. –

+0

您可以隨時使用v2用戶供稿來查找它,這是我在做什麼直到我瞭解到v3搜索實體。您只需將其解析爲xml即可:http://gdata.youtube.com/feeds/api/users/googleDevelopers?v=2 –