2013-02-07 149 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 –