{ "info": { "author": "hellowlol", "author_email": "hellowlol1@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Video" ], "description": "bw\\_plex\n========\n\n|Codacy Badge| |Travis Status| |Cov| |GitHub Releases| |PyPI version|\n|GitHub last commit|\n\nA tool for skipping intro and outro for plex.\n\nFeatures\n--------\n\n- identify outro start and end scanning the video for credits text.\n- identify intro start and end using themes song or blackframes and\n audio silence.\n- identify if the video has a recap using subtitles and audio.\n- download theme songs.\n- process on playback start.\n- process on recently added.\n- control the client to skip intro/outro.\n- start next episode when the credits start.\n\nInstall\n-------\n\nYou should install this from github as this project isnt stable.\n``pip install -e git+https://github.com/Hellowlol/bw_plex.git#egg=bw_plex``\nor using a docker ``docker pull hellowlol/bw_plex``\n\nUsage\n-----\n\nCPU/Memory usage can be rather high, so use a 64 bit python install.\nNote: This tool only works on your local network.\n\n::\n\n Usage: bw_plex\n\n [OPTIONS] COMMAND [ARGS]...\n\n CLI tool that monitors pms and jumps the client to after the theme.\n\n Options:\n -d, --debug Add debug logging.\n -u, --username TEXT Your plex username\n -p, --password TEXT Your plex password\n -s, --servername TEXT The server you want to monitor.\n --url TEXT url to the server you want to monitor\n -t, --token TEXT plex-x-token\n -c, --config TEXT Not in use atm.\n -vs, --verify_ssl TEXT Enable this to allow insecure connections to PMS\n --help Show this message and exit.\n\n Commands:\n add_theme_to_hashtable Create a hashtable from the themes.\n check_db Do a manual check of the db.\n create_config Create a config file.\n export_db Export the db to some other format.\n ffmpeg_process Simple manual test for ffmpeg_process with...\n manually_correct_theme Set the correct fingerprint of the show in...\n match Manual match for a file.\n process Manual process some/all eps.\n set_manual_theme_time Set a manual start and end time for a theme.\n watch Start watching the server for stuff to do.\n\nYou can read the help for the subcommands using --help:\n``bw_plex export_db --help``\n\nThe most common will be: ``bw_plex watch``\n\nHow it works:\n-------------\n\nBw\\_plex listens for playing events using websocket. We download the\nfirst 10 minutes of that episode and/or the theme music from\nYouTube/tvtunes/Plex.\n\nWe then create a audio print from the theme song that we match against\nthe audio of the 10 minutes of the episode. (There\u2019s a backup method\nthat uses audio silence in combination with black frames too).\n\nWe then check if this episode has a recap using subtitles and audio\nwhere we look for clues like last season, previously on (add you own\nwords in the config), then we download last part of the episode an and\nindentify the start and end of the outro.\n\nDepending on your settings we will then allow playback until the theme\nstart or just jump straight to intro end if we also should skip recaps.\n\nSince this is a rather slow process we also start processing the next\nepisode so next time you watch the same show we instantly seek the\nclient to the end of the theme.\n\n.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/4c2a18e04d3d45648224b4be4c45e20b\n :target: https://app.codacy.com/app/Hellowlol/bw_plex?utm_source=github.com&utm_medium=referral&utm_content=Hellowlol/bw_plex&utm_campaign=Badge_Grade_Dashboard\n.. |Travis Status| image:: https://travis-ci.org/Hellowlol/bw_plex.svg?branch=master\n :target: https://travis-ci.org/Hellowlol/bw_plex\n.. |Cov| image:: https://codecov.io/gh/hellowlol/bw_plex/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/hellowlol/bw_plex/branch/master\n.. |GitHub Releases| image:: https://img.shields.io/github/tag/hellowlol/bw_plex.svg?label=github+release\n :target: https://github.com/hellowlol/bw_plex/releases\n.. |PyPI version| image:: https://badge.fury.io/py/bw_plex.svg\n :target: https://pypi.python.org/pypi/bw_plex\n.. |GitHub last commit| image:: https://img.shields.io/github/last-commit/hellowlol/bw_plex.svg", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Hellowlol/bw_plex", "keywords": "skip intro/outro plex", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "bw-plex", "package_url": "https://pypi.org/project/bw-plex/", "platform": "", "project_url": "https://pypi.org/project/bw-plex/", "project_urls": { "Homepage": "https://github.com/Hellowlol/bw_plex" }, "release_url": "https://pypi.org/project/bw-plex/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Skip intros.", "version": "0.1.0" }, "last_serial": 5454218, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "15279a1cb485ad8e5cc4e1e749c6173d", "sha256": "7647c1a5480bc93715df24d95de46f06868f8980a1a6d91f6eac9655e684f177" }, "downloads": -1, "filename": "bw_plex-0.0.1.tar.gz", "has_sig": false, "md5_digest": "15279a1cb485ad8e5cc4e1e749c6173d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40715, "upload_time": "2018-01-20T22:06:50", "url": "https://files.pythonhosted.org/packages/b2/5a/55b11070a3a4eddc9082a22839b476ad222f50947fbe738e03b2aa4ca40a/bw_plex-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "832cba7c4d03a1df68cb5c5da1316fc1", "sha256": "50257943e755ec83109820ea9e4242bb59d3ce27ff46bb238022f026c89f737a" }, "downloads": -1, "filename": "bw_plex-0.0.2.tar.gz", "has_sig": false, "md5_digest": "832cba7c4d03a1df68cb5c5da1316fc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51801, "upload_time": "2018-01-21T01:30:03", "url": "https://files.pythonhosted.org/packages/fe/14/0e83b7a0c6b8f12965bf0ee7e31f78d6912fac2decdc753615d5462a48fb/bw_plex-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "db4e3e80afec3ab033e2f6073a362dc2", "sha256": "fcca649d494a74064242a90af37ee5094552f22c2eb92c85c533b241504e6ea3" }, "downloads": -1, "filename": "bw_plex-0.0.3.tar.gz", "has_sig": false, "md5_digest": "db4e3e80afec3ab033e2f6073a362dc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51974, "upload_time": "2018-01-21T01:51:56", "url": "https://files.pythonhosted.org/packages/be/39/d6155d43d3f9b8689354101b22343ec3d73565a2d479943e14c8b95b3814/bw_plex-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1bcbde6d803bf78dd41ce182c77ef853", "sha256": "622168ff8e2510ce34b418d79c62757b80e87fc32e377943331aca79eb48207e" }, "downloads": -1, "filename": "bw_plex-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1bcbde6d803bf78dd41ce182c77ef853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62390, "upload_time": "2018-04-02T20:40:10", "url": "https://files.pythonhosted.org/packages/40/24/9f890274477d9b6be6faca032aa967d44d054ef77ae8e9e74ad65d400c16/bw_plex-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "480d92880eb072d98f8d898620cde3a1", "sha256": "fba5f858c9aabd25cff10f473331c4189e1094f9f12ec82595b027444f77997b" }, "downloads": -1, "filename": "bw_plex-0.0.5.tar.gz", "has_sig": false, "md5_digest": "480d92880eb072d98f8d898620cde3a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40392756, "upload_time": "2018-05-20T20:52:07", "url": "https://files.pythonhosted.org/packages/de/1b/d574225b6ddfe935f4934e7a093c129770eb3372933def1e1576e6c2de52/bw_plex-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "901ac952ef79c79ffb53e97054b7321c", "sha256": "17147242628628ccb3ce902e4b23e7f7b6386e577fb92948ab0c4d27512383ab" }, "downloads": -1, "filename": "bw_plex-0.0.6.tar.gz", "has_sig": false, "md5_digest": "901ac952ef79c79ffb53e97054b7321c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40393561, "upload_time": "2018-05-21T15:50:14", "url": "https://files.pythonhosted.org/packages/e0/29/2342a587b6d80028c07292b2a60e2b3b5fdce21e800c3e804a2eda67f42d/bw_plex-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "62669563c95a734551421498393ee034", "sha256": "aaff42ab2c5ffcc14a51e06f629c391be614a0037268f7f06b3e3826511d4483" }, "downloads": -1, "filename": "bw_plex-0.0.7.tar.gz", "has_sig": false, "md5_digest": "62669563c95a734551421498393ee034", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40391957, "upload_time": "2018-05-22T17:10:49", "url": "https://files.pythonhosted.org/packages/e1/91/d6a354b728611f0c1683425b13b9b03aa441a5a183b80fda1a3adf15b083/bw_plex-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "6d269fccf4cdca2f3db46e0f455e4d0e", "sha256": "cc2b5c3b9853e0ea2a3e0505e29e9c848867d056bb5d5a2eec1eb2b6931aa0aa" }, "downloads": -1, "filename": "bw_plex-0.0.8.tar.gz", "has_sig": false, "md5_digest": "6d269fccf4cdca2f3db46e0f455e4d0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67551, "upload_time": "2018-06-24T23:07:24", "url": "https://files.pythonhosted.org/packages/5c/00/61ef8dbc3371f719e5c886108b9f4c2a6406b798a861fef075f135efc686/bw_plex-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "eca097acb4929c253ae39e0aabbd6092", "sha256": "1e78278ebc1b75ba88006ce233e78cf83494ce7c7b1bca70ee336561a157e5ed" }, "downloads": -1, "filename": "bw_plex-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "eca097acb4929c253ae39e0aabbd6092", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 89320, "upload_time": "2019-06-26T22:24:54", "url": "https://files.pythonhosted.org/packages/20/ac/c83571de71ee859fe5b628176ef4d895f41b42df92367f5f20f3e211da68/bw_plex-0.0.9-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e99eeb27b95a41cd961fed2f08fa5425", "sha256": "3a59785874b33ea3ec23f572e6d5c501393da3e9e315371b781ebac4fecc2af1" }, "downloads": -1, "filename": "bw_plex-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e99eeb27b95a41cd961fed2f08fa5425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83067, "upload_time": "2019-06-26T23:01:58", "url": "https://files.pythonhosted.org/packages/28/b3/cc323fabfba85c01e8cdf0f92b9521eee434ce98cc72f4f8cc3ee0d4c878/bw_plex-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e99eeb27b95a41cd961fed2f08fa5425", "sha256": "3a59785874b33ea3ec23f572e6d5c501393da3e9e315371b781ebac4fecc2af1" }, "downloads": -1, "filename": "bw_plex-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e99eeb27b95a41cd961fed2f08fa5425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83067, "upload_time": "2019-06-26T23:01:58", "url": "https://files.pythonhosted.org/packages/28/b3/cc323fabfba85c01e8cdf0f92b9521eee434ce98cc72f4f8cc3ee0d4c878/bw_plex-0.1.0.tar.gz" } ] }