{ "info": { "author": "dattaz", "author_email": "taz@dattaz.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Youtube2zim\n=============\n\n[![CodeFactor](https://www.codefactor.io/repository/github/openzim/youtube/badge)](https://www.codefactor.io/repository/github/openzim/youtube)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/youtube2zim.svg)](https://pypi.org/project/youtube2zim/)\n\n`youtube2zim` allows you to create a [ZIM file](https://openzim.org) from a Youtube Channel/username or one-or-more Playlists.\n\nIt downloads the video (webm or mp4 format \u2013 optionnaly recompress them in lower-quality, smaller size), the thumbnails, the subtitles and the authors' profile pictures ; then, it create a static HTML files folder of it before creating a ZIM off of it.\n\n# Requirements\n\n* [`ffmpeg`](https://ffmpeg.org/) for video transcoding (only used with `--lower-quality`).\n* [`zimwriterfs`](https://github.com/openzim/zimwriterfs) for ZIM file packaging. Use `--no-zim` to skip this step.\n* `curl` and `unzip` to install JS dependencies. See `get_js_deps.sh` if you want to do it manually.\n\n# Installation\n\n`youtube2zim` is a python program. if you are not using the docker image, you are advised to use it in a virtualenv. See `requirements.txt` for the list of python dependencies.\n\n## docker\n\n```\ndocker run -v my_dir:/output openzim/youtube youtube2zim --help\n```\n\n## pip\n\n```\npip install youtube2zim\nyoutube2zim --help\n```\n\n## source\n\n```\npython youtube2zim --help\n```\n\n# Usage\n\n`youtube2zim` uses Youtube API v3 to fetch data from Youtube. You thus need to provide an `API_KEY` to use the scraper.\n\nTo get an API:\n\n1. Connect to [Google Developers Console](https://console.developers.google.com/apis)\n2. Create a new _Project_ then Select it.\n3. When asked, choose _Create Credentials_ and select the **API Key** type. ([Credentials page](https://console.developers.google.com/apis/credentials))\n\n```\nyoutube2zim --api-key \"\" --type user --id \"Vsauce\"\n```\n\n## Notes\n\n* Your API_KEY is subject to usage quotas (10,000 requests/day) so use `--keep --skip-download` when adjusting parameters and branding to not *waste your quota*.\n* On macOS, the locale setting is buggy. You need to launch it with `LANGUAGE` environment variable (as ISO-639-1) for the translations to work.\n\n```\nLANGUAGE=fr youtube2zim --language fra\n```\n\n# Developers note\n\nIn order to support all platform, we default to `webm` video format. `mp4` one (h264), is not available in Webview on most platform due to patent restrictions.\n\nOn the other hand, `webm` is not supported in Safari (macOS, iOS).\n\nWe thus use `ogv.js`, to play webm videos on browsers that don't support it. Using `video.js`, we default to native playback if supported.\n\n`ogv.js` is an emscripten-based JS decoder for webm and thus dynamically loads differents parts at run-time on platforms that needs them. It has two consequences:\n\n* `file://` scheme doesn't work as the binary `.wasm` files are sent naively as `text/html` instead of `application/oct-stream`. If you want to use the HTML generated folder instead of ZIM, serve it through a web server and [configure the Content-Type response](https://emscripten.org/docs/compiling/WebAssembly.html#web-server-setup).\n* [ZIM](https://wiki.openzim.org/wiki/ZIM_file_format) places JS files under the `/-/` namespace and binary ones under the `/I/` one. Dynamically loading of JS and WASM files within `ogv.js` requires us to tweak it to introduce some ZIM-specific logic. See `fix_ogvjs_dist.py`.\n\nBecause the pagination system is implemented in JS, we also need to generate links there. For that to work both in static HTML and in-ZIM, we detect it using a `` in HTML files. This link needs to be present and parsed before loading the help `zim_prefix.js` script.\n\n\n## i18n\n\n`youtube2zim` has very minimal non-content text but still uses gettext through [babel]() to internationalize.\n\nTo add a new locale (`fr` in this example, use only ISO-639-1):\n\n1. init for your locale: `pybabel init -d locale -l fr`\n2. make sure the POT is up to date `pybabel extract -o youtube2zim/locale/messages.pot youtube2zim`\n3. update your locale's catalog `pybabel update -d youtube2zim/locale/ -l fr -i youtube2zim/locale/messages.pot`\n3. translate the PO file ([poedit](https://poedit.net/) is your friend)\n4. compile updated translation `pybabel compile -d youtube2zim/locale -l fr`\n\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/openzim/youtube", "keywords": "kiwix zim youtube offline", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "youtube2zim", "package_url": "https://pypi.org/project/youtube2zim/", "platform": "Linux", "project_url": "https://pypi.org/project/youtube2zim/", "project_urls": { "Homepage": "https://github.com/openzim/youtube" }, "release_url": "https://pypi.org/project/youtube2zim/2.0.0/", "requires_dist": [ "iso639 (==0.1.4)", "python-slugify (==3.0.3)", "requests (==2.22.0)", "youtube-dl", "colorthief (==0.2.1)", "python-dateutil (==2.8.0)", "python-resize-image (==1.1.19)", "jinja2 (==2.10.1)", "babel (==2.7.0)" ], "requires_python": ">=3.6", "summary": "Make ZIM file from a Youtube channel, user or playlist(s)", "version": "2.0.0" }, "last_serial": 5842312, "releases": { "1.1.1.1": [ { "comment_text": "", "digests": { "md5": "d8bf5546e51d51ba61c678785490f47b", "sha256": "1e01cfbdabca3bcaacb92019b5c94dabb046e7a5d2db6124e8ad5963b654652f" }, "downloads": -1, "filename": "youtube2zim-1.1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d8bf5546e51d51ba61c678785490f47b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 981747, "upload_time": "2017-04-04T23:37:58", "url": "https://files.pythonhosted.org/packages/c2/31/d1c30dc841c0b8ec19127ed9b1483dd056745f12923300bfc28e24fe7031/youtube2zim-1.1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "408ea9940712f891916d5ef4a9067c23", "sha256": "b8440185205b5222d4c17fc1c94342964c7365f8e8e3ceceac32f12b4a0a9ddc" }, "downloads": -1, "filename": "youtube2zim-1.1.1.1.tar.gz", "has_sig": false, "md5_digest": "408ea9940712f891916d5ef4a9067c23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 972371, "upload_time": "2017-04-04T23:38:01", "url": "https://files.pythonhosted.org/packages/19/6a/5a92b0c5e0a4190b27deaafe2650371fb3a3c78c20d2b79a4a8de66b4bdb/youtube2zim-1.1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "5b01a60f9740e88eaeb2d7ef820cc740", "sha256": "1b4b0754bb10bbfb02fbeb502274b9967b0813fba3d6f561a1cb5e72103f84b6" }, "downloads": -1, "filename": "youtube2zim-1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "5b01a60f9740e88eaeb2d7ef820cc740", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 483370, "upload_time": "2017-04-29T16:49:09", "url": "https://files.pythonhosted.org/packages/d9/b0/9d8ed5823833ab86fc0503648fea044f8d10f8b052a69ad621405a313ee9/youtube2zim-1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45d5dc5f6bfa298dc0a0cfc98b2554f8", "sha256": "218f339328d2b2066d138fc4cb00152a9de4fc8c31c3612dd95e4efcc4dcc335" }, "downloads": -1, "filename": "youtube2zim-1.2.tar.gz", "has_sig": false, "md5_digest": "45d5dc5f6bfa298dc0a0cfc98b2554f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 477993, "upload_time": "2017-04-29T16:49:14", "url": "https://files.pythonhosted.org/packages/2f/f9/21338aa1bfb91486211e4d4baf6023ce9a5d90179303227010303a45691d/youtube2zim-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e99b06015c736a59fb7a3d4f29b79b63", "sha256": "1095d54171dc89192195d38a217438386cfa55e93040c4b1c5b197e3007b82d9" }, "downloads": -1, "filename": "youtube2zim-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "e99b06015c736a59fb7a3d4f29b79b63", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 971165, "upload_time": "2017-05-02T09:58:55", "url": "https://files.pythonhosted.org/packages/6a/df/bf8729c23f417d14652f027f8ffd9274658202ceb2f5d11ac658886f937a/youtube2zim-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d27ed937763fd4a636fe3b648a81f32", "sha256": "d7c167856b5a72b66df3ee5b0e99b9d2dcb9630bdc8cbab783790c260019b751" }, "downloads": -1, "filename": "youtube2zim-1.2.1.tar.gz", "has_sig": false, "md5_digest": "6d27ed937763fd4a636fe3b648a81f32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 962742, "upload_time": "2017-05-02T09:59:05", "url": "https://files.pythonhosted.org/packages/d6/9f/467f26209dcb30baa307326f420f2d2e0251cdf7f04ec58a49b90f85e46e/youtube2zim-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "565483e188335104c9f32965ee64a066", "sha256": "809109963c1277ff0874c76680cf379b90bd87dab86019a4d72e9be76a50ab9c" }, "downloads": -1, "filename": "youtube2zim-1.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "565483e188335104c9f32965ee64a066", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 483869, "upload_time": "2017-05-08T18:55:28", "url": "https://files.pythonhosted.org/packages/48/a6/ba522b8a14dbd363af73758c24323238fcdcebd2ffd1f81036644de796ad/youtube2zim-1.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46c02d6a93013e0566c0552d7f1248f1", "sha256": "1286a2c86f873b2122a840f08681c64cd8b02fd48e01c687cad8416a791a22cc" }, "downloads": -1, "filename": "youtube2zim-1.2.2.tar.gz", "has_sig": false, "md5_digest": "46c02d6a93013e0566c0552d7f1248f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 478474, "upload_time": "2017-05-08T18:55:33", "url": "https://files.pythonhosted.org/packages/fb/30/54a5e1bba290d20a64339602d9996f7c8b8d424a519323e1f7e32ec14410/youtube2zim-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "ae8a21dacb29957ac742731514856da6", "sha256": "f2fa2692c0adb251c74805e2be384134dade0507ea2e11c24b3b2fe4f5ef7446" }, "downloads": -1, "filename": "youtube2zim-1.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "ae8a21dacb29957ac742731514856da6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 965112, "upload_time": "2017-05-09T19:47:26", "url": "https://files.pythonhosted.org/packages/95/cf/921277d3543c9a9d307f44f314869b1485fabea93e08b1b49afd188fd1f6/youtube2zim-1.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21dbf8c5e0ad84052d8041c9222c67d7", "sha256": "fd9fd2a19d2b94f90264969f1757e0e828b0893cf21426953adbdb06e6abe139" }, "downloads": -1, "filename": "youtube2zim-1.2.3.tar.gz", "has_sig": false, "md5_digest": "21dbf8c5e0ad84052d8041c9222c67d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 957552, "upload_time": "2017-05-09T19:47:38", "url": "https://files.pythonhosted.org/packages/1a/cf/0520896523238fe2fa8d342afad4b4d2d755c2abd0b5071e4cf3295b1944/youtube2zim-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "d51a7178d6dcf135783ec633f7708aa0", "sha256": "4d39f189f6b1ed0ea49edcb8f9b55e5273d696e9a97bdb8373ddf638aff12987" }, "downloads": -1, "filename": "youtube2zim-1.2.4-py2-none-any.whl", "has_sig": false, "md5_digest": "d51a7178d6dcf135783ec633f7708aa0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3910209, "upload_time": "2018-06-12T14:43:23", "url": "https://files.pythonhosted.org/packages/c3/eb/e036266ea8762c59f34b4ad5f96c02c7d0be13d91be6c4b2c7e8072bf081/youtube2zim-1.2.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c295b293a7c333f6441615554ae37c0c", "sha256": "818b86e0d85efff8e5e12008ba38154106cd7d9ef32b780c5f9edb648b8b10e2" }, "downloads": -1, "filename": "youtube2zim-1.2.4.tar.gz", "has_sig": false, "md5_digest": "c295b293a7c333f6441615554ae37c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3398432, "upload_time": "2018-06-12T14:44:16", "url": "https://files.pythonhosted.org/packages/37/08/101089cc982accc209c72118fd68a5600a2346c68620a3f66bba5b0f8332/youtube2zim-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "377e8019a004f398c799c931710a6abb", "sha256": "7fd5bbfe1e908edd9c09994a2222b018cc8d8e6e9d5f8dc31bca1700a82e98f6" }, "downloads": -1, "filename": "youtube2zim-1.2.5-py2-none-any.whl", "has_sig": false, "md5_digest": "377e8019a004f398c799c931710a6abb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 484049, "upload_time": "2018-06-22T10:52:18", "url": "https://files.pythonhosted.org/packages/c0/95/b4b2e386f13b5ec07778fd66d3b34d477167adfaabc377a930cc0c13f55f/youtube2zim-1.2.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89ac97faf39b83e3177604554f945a2e", "sha256": "5abe54558777fff7a3f5c7935c12baaa2b861804a0b8a803fae9d2b23423c8d3" }, "downloads": -1, "filename": "youtube2zim-1.2.5.tar.gz", "has_sig": false, "md5_digest": "89ac97faf39b83e3177604554f945a2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 479517, "upload_time": "2018-06-22T10:52:27", "url": "https://files.pythonhosted.org/packages/15/32/0326ac121e49b0ee088a1dd727adc96af48231f97164000ebc9915c547f4/youtube2zim-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "c0e854620c137f7ce0acd89850057bf9", "sha256": "b614801ac9fee77fcd4f73aa556f5f4d9a7ee3071f30017604056e55f71abad8" }, "downloads": -1, "filename": "youtube2zim-1.2.6-py2-none-any.whl", "has_sig": false, "md5_digest": "c0e854620c137f7ce0acd89850057bf9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 484086, "upload_time": "2018-06-22T21:21:42", "url": "https://files.pythonhosted.org/packages/e5/f9/38a7f13a453d4609316a07a826bfcf8459f57b611d686a5d8d76ba3a6b0d/youtube2zim-1.2.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7365a586d985cd4295b68373246f706b", "sha256": "e6a7fd6d2172077b8c4990961126778bdaa41b60ce9f199dd54622fc5c4d54fa" }, "downloads": -1, "filename": "youtube2zim-1.2.6.tar.gz", "has_sig": false, "md5_digest": "7365a586d985cd4295b68373246f706b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 479557, "upload_time": "2018-06-22T21:21:51", "url": "https://files.pythonhosted.org/packages/bd/88/a55b4f8cf13849d165282b28298146e9b9dbeb916262a44809b080918c26/youtube2zim-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "241944e02e333c6343c4ae02655d68f0", "sha256": "cae742e980583a3a9864ec9cf0cdcac711c8e5718bc096e60614df87635708e9" }, "downloads": -1, "filename": "youtube2zim-1.2.7-py2-none-any.whl", "has_sig": false, "md5_digest": "241944e02e333c6343c4ae02655d68f0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 484024, "upload_time": "2018-06-26T16:57:26", "url": "https://files.pythonhosted.org/packages/54/72/c27f9225cc802eb7836ec09556e1a437f0a4c38d987265fd978e53ed2862/youtube2zim-1.2.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e992c83664edb7bdc59dc270b2caa410", "sha256": "4e58f7d85c4498f801834ecc0087e6a3f54835ade304532801381b2200823eff" }, "downloads": -1, "filename": "youtube2zim-1.2.7.tar.gz", "has_sig": false, "md5_digest": "e992c83664edb7bdc59dc270b2caa410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 479568, "upload_time": "2018-06-26T16:57:36", "url": "https://files.pythonhosted.org/packages/6e/2e/5051e62e455edb5b6eef5d2881fdf47dfa6d4d3f65de78ffe7b4f0723bc0/youtube2zim-1.2.7.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "cfc91a6b407b741700bbe99c4efcc324", "sha256": "04142aa70f8997810b9215b9fc5e8f536183c28899413021d69354e73424a28c" }, "downloads": -1, "filename": "youtube2zim-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfc91a6b407b741700bbe99c4efcc324", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3569306, "upload_time": "2019-09-17T15:32:18", "url": "https://files.pythonhosted.org/packages/ae/f5/9dc868e5a7e21032be35a0de07a77c936b6529d09aaab6a76578a4b162df/youtube2zim-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f11aea1b561094955e423c01036781b", "sha256": "4cc7a896f96a5588d4a1bbffe207c3219364332fcdae4e946e5bc533ed2cf642" }, "downloads": -1, "filename": "youtube2zim-2.0.0.tar.gz", "has_sig": false, "md5_digest": "9f11aea1b561094955e423c01036781b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3454756, "upload_time": "2019-09-17T15:32:55", "url": "https://files.pythonhosted.org/packages/95/eb/df5bf8e71b5d7330111270df724180e1a38d8b87108a34fd3ed3928a74c9/youtube2zim-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cfc91a6b407b741700bbe99c4efcc324", "sha256": "04142aa70f8997810b9215b9fc5e8f536183c28899413021d69354e73424a28c" }, "downloads": -1, "filename": "youtube2zim-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfc91a6b407b741700bbe99c4efcc324", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3569306, "upload_time": "2019-09-17T15:32:18", "url": "https://files.pythonhosted.org/packages/ae/f5/9dc868e5a7e21032be35a0de07a77c936b6529d09aaab6a76578a4b162df/youtube2zim-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f11aea1b561094955e423c01036781b", "sha256": "4cc7a896f96a5588d4a1bbffe207c3219364332fcdae4e946e5bc533ed2cf642" }, "downloads": -1, "filename": "youtube2zim-2.0.0.tar.gz", "has_sig": false, "md5_digest": "9f11aea1b561094955e423c01036781b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3454756, "upload_time": "2019-09-17T15:32:55", "url": "https://files.pythonhosted.org/packages/95/eb/df5bf8e71b5d7330111270df724180e1a38d8b87108a34fd3ed3928a74c9/youtube2zim-2.0.0.tar.gz" } ] }