{ "info": { "author": "Avi Aryan", "author_email": "avi.aryan123@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "# Series Renamer\n\n[![Version](https://img.shields.io/pypi/v/series-renamer.svg)](https://pypi.python.org/pypi/series-renamer)\n[![Downloads](https://img.shields.io/pypi/dw/series-renamer.svg)](https://pypi.python.org/pypi/series-renamer)\n[![Build Status](https://travis-ci.org/aviaryan/series-renamer.svg?branch=master)](https://travis-ci.org/aviaryan/series-renamer)\n\nPython script that connects to [thetvdb.com](http://thetvdb.com) and renames your TV series in any fashion you want.\n\n\n### Why another series renamer ?\n\nOther series renaming scripts I tried follow a very error-prone procedure. They scan each filename independently and try to extract all information about the episode from that.\nNow my One Piece episodes are named like `opdub283.mp4` and `---one piece episode 691 -u0026 692 english sub full hd.mp4` . How do you expect them to extract any info from this ?\n\nSo I decided to make my own *series renamer*. To be able to rename (fix) even badly named files like the above, my script -\n\n* scans the working directory non-recursively\n* gets the name of the TV/Anime series the folder has from the user\n* gets [TVDB](http://thetvdb.com) information of the TV series the user specified.\n* scans through the filenames for potential season numbers / episode numbers. Once you have the series name and the season/episode number accurate, nothing can stop your TV series collection from having a proper name.\n\n\n## Installing\n\n```bash\npip install series-renamer\n```\nor download the zip and extract it.\n\n```bash\npython setup.py install\n```\n\n\n## Using\n\n* Open **command prompt** aka **terminal** in the directory you want to scan and run the following command.\n```\nseries-renamer\n```\n* Give the series name. Make sure you write the name as precisely as possible.\n* The script will connect to TVDB and then scan the filenames. After that it will give you suggestions on the season numbers/episode numbers of files.\n* Choose the appropriate option and move forward. Use option 'a' (automatic) if possible.\n* In the end the script will create a log (series-renamer-log.html) in the root of the folder that was currently examined.\n* Confirm with (y) and all episodes in the folder will be renamed.\n\n\n## Features\n\n* Customizable episode renaming format.\n* Works even without season information in the filename. It then uses episode_number as the absolute episode_number of the TV Series.\n* You can explictly specify season and episode number at runtime.\n* Supports multi-episodes separated by hyphen like `Friends [10x17-18].mkv`.\n* Subtitle files are automatically renamed.\n* More [extra configurations](https://github.com/aviaryan/series-renamer/wiki#configjson) to make sure your tv collection is properly detected and renamed.\n\n\n## Examples\n\nSome sample logs created by series-renamer can be viewed from [this link](http://aviaryan.github.io/series-renamer/examples/index.html).\n\n\n## Important\n\nIt is recommended you read [some docs](https://github.com/aviaryan/series-renamer/wiki) to be fully comfortable with Series Renamer.\n\n\n## Requirements\n\n* tvdb-api\n\n\n## Questions ?\n\nJust create an [issue](https://github.com/aviaryan/series-renamer/issues), I will be glad to be of any help.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/aviaryan/series-renamer", "keywords": "series tv-series tvdb renamer", "license": "", "maintainer": "", "maintainer_email": "", "name": "series-renamer", "package_url": "https://pypi.org/project/series-renamer/", "platform": "", "project_url": "https://pypi.org/project/series-renamer/", "project_urls": { "Homepage": "http://github.com/aviaryan/series-renamer" }, "release_url": "https://pypi.org/project/series-renamer/1.1.2/", "requires_dist": [ "tvdb-api" ], "requires_python": "", "summary": "Robust TV Series Renamer", "version": "1.1.2" }, "last_serial": 2317098, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "abee41dc94e1fe94991fc777668eae5e", "sha256": "658625122d8bb0e831585ea45bd68ff85ac03aac59e3b5d7f192d8ef847152a7" }, "downloads": -1, "filename": "series_renamer-0.3-py3.4.egg", "has_sig": false, "md5_digest": "abee41dc94e1fe94991fc777668eae5e", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 12502, "upload_time": "2015-11-04T19:17:03", "url": "https://files.pythonhosted.org/packages/55/99/b467e50861108b8ef5188db380f5f487ddd7f48c82c871f8425c763b9abf/series_renamer-0.3-py3.4.egg" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "3eb43d0fc2c26821174ab5c87c5ed813", "sha256": "57308bebc86e527d8e60a7f440e279cc1150f2847ce5b3945302d2243b23ae59" }, "downloads": -1, "filename": "series_renamer-0.4-py3.4.egg", "has_sig": false, "md5_digest": "3eb43d0fc2c26821174ab5c87c5ed813", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 12565, "upload_time": "2015-11-04T19:40:03", "url": "https://files.pythonhosted.org/packages/56/46/9781ee104a0d3759d2c27e5f9d54dd939e57192250b103bb859fb86748b4/series_renamer-0.4-py3.4.egg" } ], "0.5": [], "0.6": [ { "comment_text": "", "digests": { "md5": "b828e109dbf6e1e2a65ba0cd27837751", "sha256": "7e701fc176370626481bf8aa09a61e47f241d6471c090e81d3e39dc4ea244c49" }, "downloads": -1, "filename": "series-renamer-0.6.zip", "has_sig": false, "md5_digest": "b828e109dbf6e1e2a65ba0cd27837751", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12256, "upload_time": "2015-11-09T04:59:01", "url": "https://files.pythonhosted.org/packages/fb/66/d59787b40a41d68b57fd335ed3bd477f9a08a378926bc58730d43d62e003/series-renamer-0.6.zip" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "1e4e6eed01da8463c06871b915fb9d15", "sha256": "8ec8c60a4a6ae7d223dce548a6547880f4c07a233946735280b64dcf9e752ede" }, "downloads": -1, "filename": "series-renamer-0.7.zip", "has_sig": false, "md5_digest": "1e4e6eed01da8463c06871b915fb9d15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12485, "upload_time": "2015-11-13T07:05:05", "url": "https://files.pythonhosted.org/packages/18/c4/7b233ce7dd703748c719c5da07ad03419bfb0cf43c3fdda4f2f1c03a5a2d/series-renamer-0.7.zip" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7fcc554432c96493c173f657825ff484", "sha256": "735b1e61442e15d35b83226bac1c57181b3b666254af88d39f54c8842fdf53d5" }, "downloads": -1, "filename": "series_renamer-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7fcc554432c96493c173f657825ff484", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16609, "upload_time": "2016-08-31T20:40:27", "url": "https://files.pythonhosted.org/packages/13/80/8945230b186497252664fa20452f2ce50de74946c8156f7148bfb1618a66/series_renamer-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b2bddbf0c78ed7f6da05f106efbc901", "sha256": "3bc8d74360474dc87c8a3dabf42126e4e27e8f213bc7a0dc06af106be0d1c98b" }, "downloads": -1, "filename": "series-renamer-1.0.0.zip", "has_sig": false, "md5_digest": "2b2bddbf0c78ed7f6da05f106efbc901", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12544, "upload_time": "2015-11-13T08:17:47", "url": "https://files.pythonhosted.org/packages/dc/b5/ce4315e355ef8d7076e071b023fe5a64b6537776721c0606bd169138d5bf/series-renamer-1.0.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "4fe20feefa997e8e242acb7acd5c4c70", "sha256": "c78fab4a4da6a8868c0f08d79eeed13771772e9e687b173a5fd3da06db33ab3e" }, "downloads": -1, "filename": "series_renamer-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4fe20feefa997e8e242acb7acd5c4c70", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16609, "upload_time": "2016-08-31T20:44:55", "url": "https://files.pythonhosted.org/packages/3a/7b/91d995e8728dab42d1ff31b2b01cd8e5a1868ccb6c325f330cb6be4e36f5/series_renamer-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "591fc595a98de14c0529d57c578c12e8", "sha256": "410bc289f0b114acc2b825290ddcaf92e070ff7fa214eccfbe3c3856aac5b3d5" }, "downloads": -1, "filename": "series-renamer-1.1.1.tar.gz", "has_sig": false, "md5_digest": "591fc595a98de14c0529d57c578c12e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13532, "upload_time": "2016-08-31T20:44:58", "url": "https://files.pythonhosted.org/packages/bc/5b/d7367a09d11beee18dc3a943f8fbde0cb6dcd41de264743fb3287f00d88a/series-renamer-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "7731550f7e22a3a7cfbefa6bc754ebe7", "sha256": "f6331263ed9ec36a153657e9f0ef6289a124f32a86584d9005ec2645f39c283c" }, "downloads": -1, "filename": "series_renamer-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "7731550f7e22a3a7cfbefa6bc754ebe7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16630, "upload_time": "2016-08-31T21:26:54", "url": "https://files.pythonhosted.org/packages/bd/dd/a28e159642d273e94ff93bf845b5952c66ecd758ea70c4603c47bed75ddd/series_renamer-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8049af1d2974d327a78d05ea395c590", "sha256": "57e833e1f7a1508f268111546e37b3e8244f6535aa1cea705c1d02a5ab1be0a9" }, "downloads": -1, "filename": "series-renamer-1.1.2.tar.gz", "has_sig": false, "md5_digest": "b8049af1d2974d327a78d05ea395c590", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13541, "upload_time": "2016-08-31T21:26:57", "url": "https://files.pythonhosted.org/packages/5e/c8/8b274a0f3a0056b78d4228b6cc7096a9366510bc40016a23dd6e3c2adbf0/series-renamer-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7731550f7e22a3a7cfbefa6bc754ebe7", "sha256": "f6331263ed9ec36a153657e9f0ef6289a124f32a86584d9005ec2645f39c283c" }, "downloads": -1, "filename": "series_renamer-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "7731550f7e22a3a7cfbefa6bc754ebe7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16630, "upload_time": "2016-08-31T21:26:54", "url": "https://files.pythonhosted.org/packages/bd/dd/a28e159642d273e94ff93bf845b5952c66ecd758ea70c4603c47bed75ddd/series_renamer-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8049af1d2974d327a78d05ea395c590", "sha256": "57e833e1f7a1508f268111546e37b3e8244f6535aa1cea705c1d02a5ab1be0a9" }, "downloads": -1, "filename": "series-renamer-1.1.2.tar.gz", "has_sig": false, "md5_digest": "b8049af1d2974d327a78d05ea395c590", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13541, "upload_time": "2016-08-31T21:26:57", "url": "https://files.pythonhosted.org/packages/5e/c8/8b274a0f3a0056b78d4228b6cc7096a9366510bc40016a23dd6e3c2adbf0/series-renamer-1.1.2.tar.gz" } ] }