{ "info": { "author": "Jonas Depoix", "author_email": "jonas.depoix@web.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "# YouTube Transcript/Subtitle API (including automatically generated subtitles)\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BAENLEW8VUJ6G&source=url)\n[![Build Status](https://travis-ci.org/jdepoix/youtube-transcript-api.svg)](https://travis-ci.org/jdepoix/youtube-transcript-api)\n[![Coverage Status](https://coveralls.io/repos/github/jdepoix/youtube-transcript-api/badge.svg?branch=master)](https://coveralls.io/github/jdepoix/youtube-transcript-api?branch=master)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](http://opensource.org/licenses/MIT)\n[![image](https://img.shields.io/pypi/v/youtube-transcript-api.svg)](https://pypi.org/project/youtube-transcript-api/)\n[![image](https://img.shields.io/pypi/pyversions/youtube-transcript-api.svg)](https://pypi.org/project/youtube-transcript-api/)\n\nThis is an python API which allows you to get the transcripts/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require a headless browser, like other selenium based solutions do!\n\n## Install\n\nIt is recommended to [install this module by using pip](https://pypi.org/project/youtube-transcript-api/):\n\n```\npip install youtube_transcript_api\n```\n\nIf you want to use it from source, you'll have to install the dependencies manually:\n\n```\npip install -r requirements.txt\n```\n\n## How to use it\n\nYou could either integrate this module into an existing application, or just use it via an CLI\n\n### In code\n\nTo get a transcript for a given video you can do:\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi\n\nYouTubeTranscriptApi.get_transcript(video_id)\n```\n\nThis will return a list of dictionaries looking somewhat like this:\n\n```python\n[\n {\n 'text': 'Hey there',\n 'start': 7.58,\n 'duration': 6.13\n },\n {\n 'text': 'how are you',\n 'start': 14.08,\n 'duration': 7.58\n },\n # ...\n]\n```\n\nYou can also add the `languages` param if you want to make sure the transcripts are retrieved in your desired language (it usually defaults to english).\n\n```python\nYouTubeTranscriptApi.get_transcripts(video_ids, languages=['de', 'en'])\n```\n\nIt's a list of language codes in a descending priority. In this example it will first try to fetch the german transcript (`'de'`) and then fetch the english transcript (`'en'`) if it fails to do so. As I can't provide a complete list of all working language codes with full certainty, you may have to play around with the language codes a bit, to find the one which is working for you!\n\nTo get transcripts for a list fo video ids you can call:\n\n```python\nYouTubeTranscriptApi.get_transcripts(video_ids, languages=['de', 'en'])\n```\n\n`languages` also is optional here.\n\n### CLI\n\nExecute the CLI script using the video ids as parameters and the results will be printed out to the command line:\n\n```\nyoutube_transcript_api ...\n```\n\nThe CLI also gives you the option to provide a list of preferred languages:\n\n```\nyoutube_transcript_api ... --languages de en\n```\n\nIf you would prefer to write it into a file or pipe it into another application, you can also output the results as json using the following line:\n\n```\nyoutube_transcript_api ... --languages de en --json > transcripts.json\n```\n\n### Proxy\n\nYou can specify a https/http proxy, which will be used during the requests to YouTube:\n\n```python\nfrom youtube_transcript_api import YouTubeTranscriptApi\n\nYouTubeTranscriptApi.get_transcript(video_id, proxies={\"http\": \"http://user:pass@domain:port\", \"https\": \"https://user:pass@domain:port\"})\n```\n\nAs the `proxies` dict is passed on to the `requests.get(...)` call, it follows the [format used by the requests library](http://docs.python-requests.org/en/master/user/advanced/#proxies).\n\nUsing the CLI:\n\n```\nyoutube_transcript_api --http-proxy http://user:pass@domain:port --https-proxy https://user:pass@domain:port\n```\n\n\n## Warning\n\n This code uses an undocumented part of the YouTube API, which is called by the YouTube web-client. So there is no guarantee that it won't stop working tomorrow, if they change how things work. I will however do my best to make things working again as soon as possible if that happens. So if it stops working, let me know!\n\n## Donation\n\nIf this project makes you happy by reducing your development time, you can make me happy by treating me to a cup of coffee :)\n\n[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BAENLEW8VUJ6G&source=url)\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jdepoix/youtube-transcript-api", "keywords": "youtube-api subtitles youtube transcripts transcript subtitle youtube-subtitles youtube-transcripts cli", "license": "", "maintainer": "", "maintainer_email": "", "name": "youtube-transcript-api", "package_url": "https://pypi.org/project/youtube-transcript-api/", "platform": "", "project_url": "https://pypi.org/project/youtube-transcript-api/", "project_urls": { "Homepage": "https://github.com/jdepoix/youtube-transcript-api" }, "release_url": "https://pypi.org/project/youtube-transcript-api/0.1.9/", "requires_dist": [ "requests" ], "requires_python": "", "summary": "This is an python API which allows you to get the transcripts/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require a headless browser, like other selenium based solutions do!", "version": "0.1.9" }, "last_serial": 5949251, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "515eafdcef37cfabe3e636f14cccdd39", "sha256": "0f5acedc694ad4c94bbe7d055492d7e858540dddaa9f788bfba010b32d053dbf" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "515eafdcef37cfabe3e636f14cccdd39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5064, "upload_time": "2018-07-03T11:41:00", "url": "https://files.pythonhosted.org/packages/2b/42/ecdf0410862dca1e725cd0dda2e561be072c96cf33775c07d239ea37d151/youtube_transcript_api-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fc6c617095a2789dcab7c4ec4437440", "sha256": "44b43c384b10582d5def4572c330e5e31bc5f968cd3611f2840a7565a9cf4a44" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9fc6c617095a2789dcab7c4ec4437440", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3932, "upload_time": "2018-07-03T11:41:01", "url": "https://files.pythonhosted.org/packages/0a/4e/cd109c9a9b4d58db207bb48f47e397c44e2cc192df99bfef83b776496993/youtube_transcript_api-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f52ed208730ee747905ea033d48f425d", "sha256": "bd13f879ebd4b5342b30d433cb53279d3d59d99671dac4ec4e433bb74a44d64a" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f52ed208730ee747905ea033d48f425d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5081, "upload_time": "2018-07-15T08:58:35", "url": "https://files.pythonhosted.org/packages/9a/41/4c9d45a2d3acde0938d515ee57af33e30656739601e72759623098e5eff3/youtube_transcript_api-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67465b09a7b66cca11ccce185e70118c", "sha256": "6d484fd21b06d44603a0a7d8e5ad5c7d24f8438b21cfc960dd64d7d2d0a58399" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.1.tar.gz", "has_sig": false, "md5_digest": "67465b09a7b66cca11ccce185e70118c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3961, "upload_time": "2018-07-15T08:58:36", "url": "https://files.pythonhosted.org/packages/27/92/17ce1a35de1f3cf91e206869300c63f32a8c9042c468c7b70f456acbb8af/youtube_transcript_api-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "839c113ce8bde15bcc8557980212b944", "sha256": "0916bed0947a2e7880b55e15ca54d6f5e6d5154bfcbfa64bcec48b0f3a86cd2b" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "839c113ce8bde15bcc8557980212b944", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5787, "upload_time": "2019-02-21T12:00:24", "url": "https://files.pythonhosted.org/packages/ae/4c/25cd6051207f7ccf0bd5b1808d143f3ddc96d0fce768540e1dbdd0b39f12/youtube_transcript_api-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27ecbb55cd046257d4b752f6be698192", "sha256": "3a0eb04f8492decab3f16d1b507537cfc1add5db2c537174baae78c54a5673ff" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.2.tar.gz", "has_sig": false, "md5_digest": "27ecbb55cd046257d4b752f6be698192", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4486, "upload_time": "2019-02-21T12:00:25", "url": "https://files.pythonhosted.org/packages/d7/1f/80a75f10f09b05c95864d4aac1b378871be2b78c84b7f876ec3c33a87296/youtube_transcript_api-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e6fcb1174d9a1e881188786ed3235d33", "sha256": "3a7245694847e364cdd62d5681a5ef835021ddb0615c8813d7352020bb52948c" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e6fcb1174d9a1e881188786ed3235d33", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6380, "upload_time": "2019-03-11T13:59:03", "url": "https://files.pythonhosted.org/packages/3c/ce/69c5500169953041aaf2bbde0fd9affbf7c9f9ae195d51827332e69b83ce/youtube_transcript_api-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce247fe7b13dba30dc66ff9d8e273dd5", "sha256": "30c8132d41d7df45cfee4d0acdc6b3a4ae564f4cc764af6862ad279f2fe4fbba" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ce247fe7b13dba30dc66ff9d8e273dd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4781, "upload_time": "2019-03-11T13:59:04", "url": "https://files.pythonhosted.org/packages/53/e9/8ddfb626cbbd7686525553fa10d0b894c92f4a8c1a11fcad23b837ed95cb/youtube_transcript_api-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "fa6934a81f31630e15748e2ef3cc47f7", "sha256": "6514d6c8f964fec766b3ea9986cd7c3bf707d7c0885c7fcf69b26d0c3ffe1696" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fa6934a81f31630e15748e2ef3cc47f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9747, "upload_time": "2019-03-27T10:08:42", "url": "https://files.pythonhosted.org/packages/02/75/4056d5df84c04f5e1a86f8d9e74720f30d9e9e6f47d652328a29081bddac/youtube_transcript_api-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad08b376da163be60f855d23f7e02b76", "sha256": "ef47ada6bc8a4e8ef8c13c6023d10e5c23baf1460e3aae52e13442e33fee0f50" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ad08b376da163be60f855d23f7e02b76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8109, "upload_time": "2019-03-27T10:08:43", "url": "https://files.pythonhosted.org/packages/c3/72/7fa9aae0e8f5d861e451287fd591fedb5c642c9fa2c81991ba9d0f402162/youtube_transcript_api-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2c2a33eb93ddf64a25283f5a01090865", "sha256": "0ae88fb7e70248e8a63499d217f3bef1b0b3677989990cccac98c6469aede32b" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2c2a33eb93ddf64a25283f5a01090865", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10272, "upload_time": "2019-06-20T15:23:19", "url": "https://files.pythonhosted.org/packages/b3/d4/4ac8050327954de6f15ea33865b6c0872df88ff03394a28cdaa23771944a/youtube_transcript_api-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a01b20f81a30914f6fa47ee1fa5db3ab", "sha256": "8d9f6d7d3edddccf0b2ccd786fd2c904858c87fef5eb69269acfdf8d6da938c4" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a01b20f81a30914f6fa47ee1fa5db3ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8941, "upload_time": "2019-06-20T15:23:21", "url": "https://files.pythonhosted.org/packages/ef/75/f9ab97a511494e61d0f16dfaa5a4c8dea1bde2caef694b2c8918a849d0c4/youtube_transcript_api-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "3093f3f77184a7170047c62985d8b80f", "sha256": "a71d13f4674050f6ad3370906073e0fb81c6080f76eb00fa2f05cf31c7632db5" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3093f3f77184a7170047c62985d8b80f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10281, "upload_time": "2019-07-15T14:00:12", "url": "https://files.pythonhosted.org/packages/d4/1f/3a228710425cc2342e76311aab32d1e4b4fbd50ef1dafdaecee6645f0974/youtube_transcript_api-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a62b30ac8a5d475350b33555af6b77b6", "sha256": "385863852fd171b14f72427a0d3c6470066996848b46ea67f14169d8a652ae48" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.6.tar.gz", "has_sig": false, "md5_digest": "a62b30ac8a5d475350b33555af6b77b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8925, "upload_time": "2019-07-15T14:00:13", "url": "https://files.pythonhosted.org/packages/55/18/bc05f070069d1abe3a396d3c3810aa46c5d303a60a545d7b330194ff04a8/youtube_transcript_api-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "1f4b26de90f76205fe6c2a6cdacf7f39", "sha256": "cd58efee5ff38912dcc15def81522c4519976b7786af7af11268d733fa5e9b45" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "1f4b26de90f76205fe6c2a6cdacf7f39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10292, "upload_time": "2019-07-22T11:18:49", "url": "https://files.pythonhosted.org/packages/df/a7/b4d4afec227187952f7d4b25559792ac229089ebd5ab03ba09ae979f4afd/youtube_transcript_api-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4f4410ff1dde1676f9f00116cbf36f4", "sha256": "40ed329a8c93a68a9dd8892a53878d8507bc355de75678408f3b441aebee0253" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.7.tar.gz", "has_sig": false, "md5_digest": "d4f4410ff1dde1676f9f00116cbf36f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9097, "upload_time": "2019-07-22T11:18:50", "url": "https://files.pythonhosted.org/packages/54/02/dc6e4311ca5aa81168095b3caf68a22d75bc0b9aac4d207ce7a5127c2b95/youtube_transcript_api-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1b6fb95d7c4cbc0f727e9608f48fbd0a", "sha256": "99403714af418a1fcf65c8db7e2794ce41bd206f51f6adab908d479a4758f38c" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "1b6fb95d7c4cbc0f727e9608f48fbd0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11208, "upload_time": "2019-10-07T17:02:09", "url": "https://files.pythonhosted.org/packages/91/d6/00f8854a46bfcf2e55331531c815e746e96226952960af26202f16d22d21/youtube_transcript_api-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df3df93a6d08180b9214de2308da8f0e", "sha256": "fd19f390b0c9704063c9246263d1a19262ac171d95e3abf43a877b67f68c86d1" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.8.tar.gz", "has_sig": false, "md5_digest": "df3df93a6d08180b9214de2308da8f0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9167, "upload_time": "2019-10-07T17:02:11", "url": "https://files.pythonhosted.org/packages/6f/90/2bb143394ad300b966a264c9cd1f0269835cd530a0b526648297acb6eb39/youtube_transcript_api-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "4cf640a54c8b624f31c65c3879c62fa3", "sha256": "ebb828d7f08c146c5977b40cd9dd3763c8117b8acc58cb937d67c16f94ea6f29" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "4cf640a54c8b624f31c65c3879c62fa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11285, "upload_time": "2019-10-09T11:31:03", "url": "https://files.pythonhosted.org/packages/b7/f8/0c6d080ec15a90f511b4519598a7728e741b231b447e80603c3b5b008344/youtube_transcript_api-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5b8458cb825c4123f55854039b08888", "sha256": "995f9ce91fcdf996cb6f02d82bc7c8afcb059f754e8fbe59c288e813c7e0c111" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.9.tar.gz", "has_sig": false, "md5_digest": "f5b8458cb825c4123f55854039b08888", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9225, "upload_time": "2019-10-09T11:31:05", "url": "https://files.pythonhosted.org/packages/30/52/7f50ec2a014a66bc5ab7c5f459e6291e83a3bcfa50326791f0858f39cd58/youtube_transcript_api-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4cf640a54c8b624f31c65c3879c62fa3", "sha256": "ebb828d7f08c146c5977b40cd9dd3763c8117b8acc58cb937d67c16f94ea6f29" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "4cf640a54c8b624f31c65c3879c62fa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11285, "upload_time": "2019-10-09T11:31:03", "url": "https://files.pythonhosted.org/packages/b7/f8/0c6d080ec15a90f511b4519598a7728e741b231b447e80603c3b5b008344/youtube_transcript_api-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5b8458cb825c4123f55854039b08888", "sha256": "995f9ce91fcdf996cb6f02d82bc7c8afcb059f754e8fbe59c288e813c7e0c111" }, "downloads": -1, "filename": "youtube_transcript_api-0.1.9.tar.gz", "has_sig": false, "md5_digest": "f5b8458cb825c4123f55854039b08888", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9225, "upload_time": "2019-10-09T11:31:05", "url": "https://files.pythonhosted.org/packages/30/52/7f50ec2a014a66bc5ab7c5f459e6291e83a3bcfa50326791f0858f39cd58/youtube_transcript_api-0.1.9.tar.gz" } ] }