{ "info": { "author": "Alex Headley", "author_email": "aheadley@waysaboutstuff.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "python-crunchyroll\n==================\n\nPython interface to Crunchyroll's undocumented APIs and utilities\nfor working with the returned data. Eventual plan is to create a better\nXMBC plugin.\n\n### Requirements\n\n * Python 2.6+\n * requests\n * tlslite\n\n### Usage\n\nPretty much anything of interest is available now, including the RTMPE stream\ndata and decrypted and formatted subtitles.\n\nExample usage:\n~~~~\n>>> from crunchyroll.apis.meta import MetaApi\n>>> api = MetaApi()\n>>> pprint([s.name for s in api.list_anime_series(limit=5)])\n[u'07 Ghost',\n u'11eyes',\n u'A Bridge to the Starry Skies - Hoshizora e Kakaru Hashi',\n u'A Dark Rabbit has Seven Lives',\n u'Abunai Sisters']\n>>> space_brothers = api.search_anime_series('Space Brothers')[0]\n>>> pprint(space_brothers.description)\nu'To follow his brother Hibito to the moon, Mutta will attempt to become an\nastronaut at the age of 32. Unaware of his own talent, Mutta chases his\ndreams to get back in front of his younger brother.'\n>>> sb_episodes = api.list_media(space_brothers)\n>>> len(sb_episodes)\n49\n>>> ep = [e for e in sb_episodes if e.episode_number == '40'][0]\n>>> print ep.episode_number, ep.name, ep.free_available\n40 Heaven and Hell True\n>>> api.login(username=username, password=password)\nTrue\n>>> stream = api.get_media_stream(ep)\n>>> subs = stream.default_subtitles.decrypt().get_ass_formatted()\n>>> print '\\n'.join(subs.split('\\n')[:9])\n[Script Info]\nTitle: English (US)\nScriptType: v4.00+\nWrapStyle: 0\nPlayRexX: 704\nPlayResY: 400\nSubtitle ID: XXXXX\nLanguage: English (US)\nCreated: 28 days ago\n>>> [s.language for s in stream.subtitle_stubs]\n['English (US)', u'Espa\\xf1ol', u'Fran\\xe7ais (France)', u'Portugu\\xeas (Brasil)']\n>>> fr_subs = api.unfold_subtitle_stub(stream.subtitle_stubs[2]).decrypt().get_srt_formatted()\n>>> print '\\n'.join(fr_subs.split('\\n')[:11])\n1\n00:00:00,760 --> 00:00:02,940\nTiens ? \u00c7a ne s'ouvre pas.\n\n2\n00:00:04,500 --> 00:00:06,770\nTourne le levier vers la gauche.\n\n3\n00:00:07,360 --> 00:00:10,150\nLequel ?\n~~~~\n\n### Testing\n\nRun the unit tests with:\n\n $ python setup.py test\n\nNote that some of the unit tests will use a CR account which should be made\navailable in the `CRUNCHYROLL_USERNAME` and `CRUNCHYROLL_PASSWORD` environment\nvariables.\n\n### LICENSE\n\nThis project is licensed under GPLv2+, see LICENSE for more details.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aheadley/python-crunchyroll", "keywords": null, "license": "GPLv2.0", "maintainer": null, "maintainer_email": null, "name": "crunchyroll", "package_url": "https://pypi.org/project/crunchyroll/", "platform": "any", "project_url": "https://pypi.org/project/crunchyroll/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aheadley/python-crunchyroll" }, "release_url": "https://pypi.org/project/crunchyroll/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "A library to interface with Crunchyroll's various APIs and utilites to work\nwith the returned data", "version": "1.0.1" }, "last_serial": 1534906, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "85a34c9f8b782d75dac06e552b757dba", "sha256": "eae9de65a83399988086525b8c6574774c81e0fcd9021090d1beb6430d9d4dd0" }, "downloads": -1, "filename": "crunchyroll-1.0.1.tar.gz", "has_sig": false, "md5_digest": "85a34c9f8b782d75dac06e552b757dba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18306, "upload_time": "2015-05-06T02:02:00", "url": "https://files.pythonhosted.org/packages/2c/1d/82c2efd844f6ba3f87a0680a0abc7306f813f125b14434247e7d9ffc2605/crunchyroll-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "85a34c9f8b782d75dac06e552b757dba", "sha256": "eae9de65a83399988086525b8c6574774c81e0fcd9021090d1beb6430d9d4dd0" }, "downloads": -1, "filename": "crunchyroll-1.0.1.tar.gz", "has_sig": false, "md5_digest": "85a34c9f8b782d75dac06e552b757dba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18306, "upload_time": "2015-05-06T02:02:00", "url": "https://files.pythonhosted.org/packages/2c/1d/82c2efd844f6ba3f87a0680a0abc7306f813f125b14434247e7d9ffc2605/crunchyroll-1.0.1.tar.gz" } ] }