一个用于youtube数据api的python包装器。
python-youtube的Python项目详细描述
python youtube
一个用于youtube数据api v3的python包装器。
安装
您可以从pypi安装这个库:
$pip install --upgrade python-youtube ✨?✨
使用
api通过pyyoutube.Api类公开。
使用两种不同的方法创建pyyoutube.Api的实例。 只使用api密钥或提供google客户端id和密钥。 现在仅适用于API密钥:
In [1]: from pyyoutube import Api In [2]: api = Api(api_key='your api key')
获取一个YouTube频道的数据:
In [3]: res = api.get_channel_info(channel_name='GoogleDevelopers') In [4]: res Out[5]: Channel(id=UC_x5XG1OV2P6uZZ5FSM9Ttw,kind=youtube#channel)
获取YouTube频道的播放列表:
In [6]: res = api.get_playlist(channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw') In [7]: res Out[7]: ([Playlist(id=PLOU2XLYxmsIJpufeMHncnQvFOe0K3MhVp,kind=youtube#playlist), Playlist(id=PLOU2XLYxmsIJXsH2htG1g0NUjHGq62Q7i,kind=youtube#playlist), Playlist(id=PLOU2XLYxmsIJJVnHWmd1qfr0Caq4VZCu4,kind=youtube#playlist), Playlist(id=PLOU2XLYxmsIKW-llcbcFdpR9RjCfYHZaV,kind=youtube#playlist), Playlist(id=PLOU2XLYxmsIIOSO0eWuj-6yQmdakarUzN,kind=youtube#playlist)], {'totalResults': 416, 'resultsPerPage': 5})
要获取一个播放列表的项目:
In [8]: res = api.get_playlist_item(playlist_id='PLOU2XLYxmsIJpufeMHncnQvFOe0K3MhVp') In [9]: res Out[9]: ([PlaylistItem(id=UExPVTJYTFl4bXNJSnB1ZmVNSG5jblF2Rk9lMEszTWhWcC41NkI0NEY2RDEwNTU3Q0M2,kind=youtube#playlistItem), PlaylistItem(id=UExPVTJYTFl4bXNJSnB1ZmVNSG5jblF2Rk9lMEszTWhWcC4yODlGNEE0NkRGMEEzMEQy,kind=youtube#playlistItem), PlaylistItem(id=UExPVTJYTFl4bXNJSnB1ZmVNSG5jblF2Rk9lMEszTWhWcC4wMTcyMDhGQUE4NTIzM0Y5,kind=youtube#playlistItem), PlaylistItem(id=UExPVTJYTFl4bXNJSnB1ZmVNSG5jblF2Rk9lMEszTWhWcC41MjE1MkI0OTQ2QzJGNzNG,kind=youtube#playlistItem)], {'totalResults': 4, 'resultsPerPage': 5}) In [10]: res[0][1].snippet.resourceId Out[10]: {'kind': 'youtube#video', 'videoId': 'cxABjSOa6RY'}
获取一个YouTube视频的数据:
In [11]: res = api.get_video_info(video_id='cxABjSOa6RY') In [12]: res Out[12]: Video(id=cxABjSOa6RY,kind=youtube#video)
要获取许多YouTube视频的数据:
In [13]: res = api.get_videos_info(video_ids=['cxABjSOa6RY', '21BbGGGrq9s']) In [14]: res Out[14]: [Video(id=cxABjSOa6RY,kind=youtube#video), Video(id=21BbGGGrq9s,kind=youtube#video)]
获取评论线程信息。您可以使用多个不同的参数。 如果你想得到频道和频道的视频评论线程。 您可以为目标频道id提供all_to_channel_id参数。如下:
In [5]: resp = api.get_comment_threads(all_to_channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw', count=4) In [6]: resp Out[6]: [CommentTread(id=UgzhytyP79_PwaDd4UB4AaABAg,kind=youtube#commentThread), CommentTread(id=UgxE6j_nUNlYMy_zy7R4AaABAg,kind=youtube#commentThread), CommentTread(id=UgwpW-4vURZSRbawXft4AaABAg,kind=youtube#commentThread), CommentTread(id=UgxUFyEVxBbWSIr7zrN4AaABAg,kind=youtube#commentThread)]
如果你只想得到一个频道评论线程。使用频道id而不是所有频道id。如下:
In [7]: resp = api.get_comment_threads(channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw', count=4)
如果你想得到一个视频评论线程。您可以为目标视频ID提供视频ID。如下:
In [7]: resp = api.get_comment_threads(video_id='D-lhorsDlUQ', count=2) In [8]: resp Out[8]: [CommentTread(id=UgydxWWoeA7F1OdqypJ4AaABAg,kind=youtube#commentThread), CommentTread(id=UgxKREWxIgDrw8w2e_Z4AaABAg,kind=youtube#commentThread)]
如果你想得到评论线程的详细信息。您可以提供注释线程id或逗号分隔的id列表。如下:
In [8]: resp = api.get_comment_thread_info(comment_thread_id='Ugz097FRhsQy5CVhAjp4AaABAg,UgzhytyP79_PwaDd4UB4AaABAg') In [9]: resp Out[9]: [CommentTread(id=Ugz097FRhsQy5CVhAjp4AaABAg,kind=youtube#commentThread), CommentTread(id=UgzhytyP79_PwaDd4UB4AaABAg,kind=youtube#commentThread)]
获取评论信息。您可以使用多个不同的参数。 如果你想得到高层的回复。如下:
In [10]: resp = api.get_comments_by_parent(parent_id='UgwYjZXfNCUTKPq9CZp4AaABAg') In [11]: resp Out[11]: [Comment(id=UgwYjZXfNCUTKPq9CZp4AaABAg.8yxhlQJogG18yz_cXK9Kcj,kind=youtube#comment)]
如果想要获取评论详细信息。您可以提供注释id或逗号分隔的id列表。如下:
In [12]: resp = api.get_comment_info(comment_id='UgxKREWxIgDrw8w2e_Z4AaABAg,UgyrVQaFfEdvaSzstj14AaABAg') In [13]: resp Out[13]: [Comment(id=UgxKREWxIgDrw8w2e_Z4AaABAg,kind=youtube#comment), Comment(id=UgyrVQaFfEdvaSzstj14AaABAg,kind=youtube#comment)]
待办事项
现在这已经遵循了api。
- 频道信息
- 播放列表信息
- 播放列表项信息
- 视频信息
- 评论线程信息
- 评论信息
正在执行
- 重构API。