一个用于youtube数据api的python包装器。

python-youtube的Python项目详细描述


python youtube

一个用于youtube数据api v3的python包装器。

https://travis-ci.org/MerleLiuKun/python-youtube.svg?branch=masterhttps://codecov.io/gh/MerleLiuKun/python-youtube/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/python-youtube.svg

谢谢

此项目结构基于Python-Twitter

非常感谢python twitter开发人员。

简介

library提供了一个易于使用的youtube数据api v3服务。

您可以在YouTube Data API Reference上找到api文档

安装

您可以从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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
添加组件后,java JTable为空   java将json发送到php并插入mysql,但返回null   java Spring引导JNDI CommonJ资源   从不同PC创建和合并后的Java servlet问题   java如何在使用findelements时从xpath获取文本   java使用spring boot使用gmail smtp发送电子邮件   java在不使用pojo、bean或getter和setter的情况下获取Json标题的Json数组   Java中的OpenFile对话框将null作为响应   JavaBuilder模式。扩展接口   java中无需替换的数据结构选取   java如何评价Encog中的预测神经网络   java如何在安卓中使用实际的HttpURLConnection进行单元测试?   java使用XML配置禁用WebSocket中的CSRF保护   java如何通过hibernate从多表查询中获取数据?   mysql如何在java中获取更新的行Id   java AEM/CQ组件单一组件/有限组件   java FFmpeg Javacv延迟问题   显示整数数组的java不起作用