{ "info": { "author": "Ikaros Kun", "author_email": "merle.liukun@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\nPython YouTube\n\nA Python wrapper around for YouTube Data API V3.\n\n.. image:: https://travis-ci.org/MerleLiuKun/python-youtube.svg?branch=master\n :target: https://travis-ci.org/MerleLiuKun/python-youtube\n\n.. image:: https://readthedocs.org/projects/python-youtube/badge/?version=latest\n :target: https://python-youtube.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://codecov.io/gh/MerleLiuKun/python-youtube/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/MerleLiuKun/python-youtube\n\n.. image:: https://img.shields.io/pypi/v/python-youtube.svg\n :target: https://img.shields.io/pypi/v/python-youtube\n\n======\nTHANKS\n======\n\nThis project structure is base on `Python-Twitter `_.\n\nThanks a lot for Python-Twitter Developers.\n\n============\nIntroduction\n============\n\nLibrary provides a service to easy use YouTube Data API V3.\n\n=============\nDocumentation\n=============\n\nYou can view the latest ``python-youtube`` documentation at: https://python-youtube.readthedocs.io/en/latest/.\n\nAlso view the full ``YouTube DATA API`` docs at: https://google-developers.appspot.com/youtube/v3/docs/.\n\n==========\nInstalling\n==========\n\nYou can install this lib from `pypi`::\n\n $pip install --upgrade python-youtube\n \u2728\ud83c\udf70\u2728\n\n=====\nUsing\n=====\n\nThe API is exposed via the ``pyyoutube.Api`` class.\n\nTo create an instance of the ``pyyoutube.Api`` with two different methods.\nUse only api key or provide google client id and key.\nNow only for api key::\n\n In [1]: from pyyoutube import Api\n In [2]: api = Api(api_key='your api key')\n\n\nTo fetch one youtube channel's data::\n\n In [3]: res = api.get_channel_info(channel_name='GoogleDevelopers')\n\n In [4]: res\n Out[4]: [Channel(id=UC_x5XG1OV2P6uZZ5FSM9Ttw,kind=youtube#channel)]\n\nTo fetch youtube channel's playlists::\n\n In [5]: res = api.get_playlist(channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw')\n\n In [6]: res\n Out[6]:\n ([Playlist(id=PLOU2XLYxmsILRdsoscDOuCp-6r3LgKtrv,kind=youtube#playlist),\n Playlist(id=PLOU2XLYxmsIJXsH2htG1g0NUjHGq62Q7i,kind=youtube#playlist),\n Playlist(id=PLOU2XLYxmsIJJVnHWmd1qfr0Caq4VZCu4,kind=youtube#playlist),\n Playlist(id=PLOU2XLYxmsIKW-llcbcFdpR9RjCfYHZaV,kind=youtube#playlist),\n Playlist(id=PLOU2XLYxmsIIOSO0eWuj-6yQmdakarUzN,kind=youtube#playlist)],\n {'totalResults': 416, 'resultsPerPage': 5})\n\nTo fetch one playlist's items::\n\n In [8]: res = api.get_playlist_item(playlist_id='PLOU2XLYxmsILRdsoscDOuCp-6r3LgKtrv')\n\n In [9]: res\n Out[9]:\n ([PlaylistItem(id=UExPVTJYTFl4bXNJTFJkc29zY0RPdUNwLTZyM0xnS3Rydi41NkI0NEY2RDEwNTU3Q0M2,kind=youtube#playlistItem),\n PlaylistItem(id=UExPVTJYTFl4bXNJTFJkc29zY0RPdUNwLTZyM0xnS3Rydi4yODlGNEE0NkRGMEEzMEQy,kind=youtube#playlistItem),\n PlaylistItem(id=UExPVTJYTFl4bXNJTFJkc29zY0RPdUNwLTZyM0xnS3Rydi4wMTcyMDhGQUE4NTIzM0Y5,kind=youtube#playlistItem),\n PlaylistItem(id=UExPVTJYTFl4bXNJTFJkc29zY0RPdUNwLTZyM0xnS3Rydi41MjE1MkI0OTQ2QzJGNzNG,kind=youtube#playlistItem),\n PlaylistItem(id=UExPVTJYTFl4bXNJTFJkc29zY0RPdUNwLTZyM0xnS3Rydi4wOTA3OTZBNzVEMTUzOTMy,kind=youtube#playlistItem)],\n {'totalResults': 13, 'resultsPerPage': 5})\n\n In [10]: res[0][1].snippet.resourceId\n Out[10]: ResourceId(videoId=pXoLrNNLPHc,kind=youtube#video)\n\nTo fetch one youtube video's data::\n\n In [12]: res = api.get_video_by_id(video_id='pXoLrNNLPHc')\n\n In [13]: res\n Out[13]: [Video(id=pXoLrNNLPHc,kind=youtube#video)]\n\nTo fetch many youtube video's data::\n\n In [14]: res = api.get_video_by_id(video_id='pXoLrNNLPHc,21BbGGGrq9s')\n\n In [15]: res\n Out[15]:\n [Video(id=pXoLrNNLPHc,kind=youtube#video),\n Video(id=21BbGGGrq9s,kind=youtube#video)]\n\nFetch comment thread info. You can use multi different parameter.\nIf you want to get the channel and the channel's videos comment threads.\nYou can provide target channel id with `all_to_channel_id` parameter. Like follows::\n\n In [16]: resp = api.get_comment_threads(all_to_channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw', count=4)\n\n In [17]: resp\n Out[17]:\n [CommentTread(id=Ugw1xBqKuaHKPfZR38h4AaABAg,kind=youtube#commentThread),\n CommentTread(id=Ugz-p7OFo3PwLQ_K1TJ4AaABAg,kind=youtube#commentThread),\n CommentTread(id=Ugy3iS0auqxlIP6eqZh4AaABAg,kind=youtube#commentThread),\n CommentTread(id=UgyeUVq35jr01dmURqZ4AaABAg,kind=youtube#commentThread)]\n\nIf you want to just get a channel comment threads. use `channel_id` instead of `all_to_channel_id`. Like follows::\n\n In [18]: resp = api.get_comment_threads(channel_id='UC_x5XG1OV2P6uZZ5FSM9Ttw', count=4)\n\n.. note::\n Maybe many channels has no channel's comment threads. Will raise error.\n\nIf you want to get a video comment threads. You can provide target video id with `video_id`. Like follows::\n\n In [19]: resp = api.get_comment_threads(video_id='D-lhorsDlUQ', count=2)\n\n In [20]: resp\n Out[20]:\n [CommentTread(id=UgydxWWoeA7F1OdqypJ4AaABAg,kind=youtube#commentThread),\n CommentTread(id=UgxKREWxIgDrw8w2e_Z4AaABAg,kind=youtube#commentThread)]\n\nIf you want get comment thread detail info. You can provide comment thread id or comma-separated id list. Like follows::\n\n In [21]: resp = api.get_comment_thread_info(comment_thread_id='Ugz097FRhsQy5CVhAjp4AaABAg,UgzhytyP79_PwaDd4UB4AaABAg')\n\n In [22]: resp\n Out[22]:\n [CommentTread(id=Ugz097FRhsQy5CVhAjp4AaABAg,kind=youtube#commentThread),\n CommentTread(id=UgzhytyP79_PwaDd4UB4AaABAg,kind=youtube#commentThread)]\n\nFetch comments info. You can use multi different parameter.\nIf you want to get top level's comment's replies. Like follows::\n\n In [23]: resp = api.get_comments_by_parent(parent_id='UgwYjZXfNCUTKPq9CZp4AaABAg')\n\n In [24]: resp\n Out[24]: [Comment(id=UgwYjZXfNCUTKPq9CZp4AaABAg.8yxhlQJogG18yz_cXK9Kcj,kind=youtube#comment)]\n\nIf want get comment detail info. You can provide comment id or comma-separated id list. Like follows::\n\n In [25]: resp = api.get_comment_info(comment_id='UgxKREWxIgDrw8w2e_Z4AaABAg,UgyrVQaFfEdvaSzstj14AaABAg')\n\n In [26]: resp\n Out[26]:\n [Comment(id=UgxKREWxIgDrw8w2e_Z4AaABAg,kind=youtube#comment),\n Comment(id=UgyrVQaFfEdvaSzstj14AaABAg,kind=youtube#comment)]\n\n====\nTODO\n====\n\nNow this has follows api.\n\n- OAuth Demo\n- Channel Info\n- Playlist Info\n- PlaylistItem Info\n- Video Info\n- Comment Thread Info\n- Comment Info\n- Video Categories Info\n- Guide Categories Info\n\nDoing\n\n- Search\n- Subscriptions\n- Captions\n- Activities\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MerleLiuKun/python-youtube", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "python-youtube", "package_url": "https://pypi.org/project/python-youtube/", "platform": "", "project_url": "https://pypi.org/project/python-youtube/", "project_urls": { "Homepage": "https://github.com/MerleLiuKun/python-youtube" }, "release_url": "https://pypi.org/project/python-youtube/0.4.5/", "requires_dist": [ "requests", "future", "requests-oauthlib", "pytz", "isodate", "responses" ], "requires_python": ">=3.6.0", "summary": "A Python wrapper around for YouTube Data API.", "version": "0.4.5" }, "last_serial": 5835864, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "aabe01ed2bc5dc152ffeb4fc7df89c01", "sha256": "5fcb25362c799e97192669e0317b6a8e46cc8642a2b43323d8bd18e611eb92a1" }, "downloads": -1, "filename": "python_youtube-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aabe01ed2bc5dc152ffeb4fc7df89c01", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 14726, "upload_time": "2019-08-10T13:37:34", "url": "https://files.pythonhosted.org/packages/4f/6b/8e9f9b1877cea49516ab79346d4a2ddc459440049c50dbd55fa2108e1c48/python_youtube-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4fb5ef867353cd4e7f27e938c12a39f5", "sha256": "ff06c1fda1f6a9a11d6c59b97c8b80a4bc18340a4422c9b543711bc54f5aace2" }, "downloads": -1, "filename": "python-youtube-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4fb5ef867353cd4e7f27e938c12a39f5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14527, "upload_time": "2019-08-10T13:37:36", "url": "https://files.pythonhosted.org/packages/1c/31/0c3c1c2cec972ea84cd266386353dc2dce2e426ea76667d8308f227369ed/python-youtube-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "960358a5b22a2b3ac77e56f8ec8894cf", "sha256": "6a9a1988ffbb9e3cf18b041d2b9c83d4973a8808bf157bb9eec649b278f47d47" }, "downloads": -1, "filename": "python_youtube-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "960358a5b22a2b3ac77e56f8ec8894cf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 17129, "upload_time": "2019-08-25T08:34:06", "url": "https://files.pythonhosted.org/packages/55/ce/38a5f2bf5c488879a4b4d9eedaccfac6126917aeb222ad9c79885f96cd52/python_youtube-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7475a008d05de482995064ff354bd6aa", "sha256": "52bbe1600a540afb100ccba24b19f2564d625b67efaacaceae751bf3e0de3268" }, "downloads": -1, "filename": "python-youtube-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7475a008d05de482995064ff354bd6aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 16964, "upload_time": "2019-08-25T08:34:08", "url": "https://files.pythonhosted.org/packages/8f/41/a79af9e6a94ee21cba7af47b0e79121ac90cfc242d1e110d05c590a1d038/python-youtube-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b48880a5502062cb13f11e348732fb4d", "sha256": "d82f38095dcf0f61b179681fd8fefba626c7b4361528a7ade88ef7e67d20e87a" }, "downloads": -1, "filename": "python_youtube-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b48880a5502062cb13f11e348732fb4d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 17666, "upload_time": "2019-09-01T15:49:56", "url": "https://files.pythonhosted.org/packages/8a/22/30495f66c659e35e8c9f4daba5d1c9fa468c110e1a780cf3b5ef2f0fb1a7/python_youtube-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf6787e92786132c607adbc8d61f0d70", "sha256": "81cc05a5d0c1b4521742d755cbcfd30c47c3c379c48e0fb54389ff0adf2c5bb4" }, "downloads": -1, "filename": "python-youtube-0.4.0.tar.gz", "has_sig": false, "md5_digest": "bf6787e92786132c607adbc8d61f0d70", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 17144, "upload_time": "2019-09-01T15:49:58", "url": "https://files.pythonhosted.org/packages/4e/99/c2faf1300248b8ff19a3458c86a82d1c42d7734d979ac9958ffc42b5785a/python-youtube-0.4.0.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "63dcaee682dc55c7c89e82ae628e64e7", "sha256": "df222e3936620d3f5afed6169f1ff7e2e938898fb45728a827efb56c324a5ca4" }, "downloads": -1, "filename": "python_youtube-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63dcaee682dc55c7c89e82ae628e64e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 19720, "upload_time": "2019-09-16T12:23:00", "url": "https://files.pythonhosted.org/packages/2e/71/76df45110b627615c59d8b6a8c0bd6a4f7e152a7ae603fdb79365ea13299/python_youtube-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67de87087412612d116f1ba9494b2453", "sha256": "0146ce3ff95dac10d069d5e83e4158746420a4168fefe34474c5d2918ec11091" }, "downloads": -1, "filename": "python-youtube-0.4.5.tar.gz", "has_sig": false, "md5_digest": "67de87087412612d116f1ba9494b2453", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 19265, "upload_time": "2019-09-16T12:23:02", "url": "https://files.pythonhosted.org/packages/bb/96/2f358ff857715d5c678465c22ca6413c98b50ead6a6d085f27999b6435da/python-youtube-0.4.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "63dcaee682dc55c7c89e82ae628e64e7", "sha256": "df222e3936620d3f5afed6169f1ff7e2e938898fb45728a827efb56c324a5ca4" }, "downloads": -1, "filename": "python_youtube-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63dcaee682dc55c7c89e82ae628e64e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 19720, "upload_time": "2019-09-16T12:23:00", "url": "https://files.pythonhosted.org/packages/2e/71/76df45110b627615c59d8b6a8c0bd6a4f7e152a7ae603fdb79365ea13299/python_youtube-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67de87087412612d116f1ba9494b2453", "sha256": "0146ce3ff95dac10d069d5e83e4158746420a4168fefe34474c5d2918ec11091" }, "downloads": -1, "filename": "python-youtube-0.4.5.tar.gz", "has_sig": false, "md5_digest": "67de87087412612d116f1ba9494b2453", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 19265, "upload_time": "2019-09-16T12:23:02", "url": "https://files.pythonhosted.org/packages/bb/96/2f358ff857715d5c678465c22ca6413c98b50ead6a6d085f27999b6435da/python-youtube-0.4.5.tar.gz" } ] }