{"id":24540678,"url":"https://github.com/mistralys/series-manager","last_synced_at":"2025-03-16T05:43:28.679Z","repository":{"id":182999862,"uuid":"336528579","full_name":"Mistralys/series-manager","owner":"Mistralys","description":"PHP web tool that keeps track of series watched and downloaded.","archived":false,"fork":false,"pushed_at":"2024-06-19T16:38:49.000Z","size":604,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T18:14:37.446Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mistralys.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-06T12:07:24.000Z","updated_at":"2024-06-19T16:38:52.000Z","dependencies_parsed_at":"2023-07-22T11:39:20.643Z","dependency_job_id":"c257b0b8-a6fd-4e8f-b289-b8f76212446c","html_url":"https://github.com/Mistralys/series-manager","commit_stats":null,"previous_names":["mistralys/series-manager"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fseries-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fseries-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fseries-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fseries-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mistralys","download_url":"https://codeload.github.com/Mistralys/series-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830914,"owners_count":20354850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-22T18:14:40.124Z","updated_at":"2025-03-16T05:43:28.658Z","avatar_url":"https://github.com/Mistralys.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Series Manager\n\nWeb-based tool for keeping track of TV series watched and stored \nlocally on disk, with optional [TheTVDB][] integration to fetch \nepisode information.\n\n## Features\n\n- Keep a list of series, add links to TVDB and IMDB.\n- Keep track of seasons and episodes watched.\n- With a TVDB subscription, fetch season and episode details (optional).\n- Detect which episodes match video files locally on the disk.\n- Select favorites and archive older series.\n- Add links to other services to search by name.\n- UI in English, German and French.\n\n## Requirements\n\n- Local webserver with PHP 7.4+\n- [Composer][]\n- [TheTVDB][] API account\n\n\u003e NOTE: The tool is not intended to be used on a public server.\n\u003e It is meant to be used locally, e.g. on a Raspberry Pi, without\n\u003e access from the outside. It has not been tested for security.\n\n## Setup\n\n1. Create an account for an API key on [TheTVDB][].\n2. Clone the project locally.\n3. Run `composer install`.\n4. Copy `config-local.dist.php` to `config-local.php`.\n5. Edit the configuration settings in the file.\n6. Optional: Add custom search links (see below).\n7. Open the project folder in a browser via the webserver.\n8. Log in with the password set in the configuration.\n\n## Quick start\n\nOnce you have set up the project, you can start adding series\nvia the \"Add new\" menu. Simply fill in the required information,\nand it will be added to the overview.\n\nAfter adding a new series, you can fetch data from TheTVDB by\ngoing into the series' detail view and clicking the \"Fetch data\"\nbutton. The available seasons and episodes will become available.\n\nIn the overview, you can keep track of your watching progress\nby entering the season and episode number you have watched.\n\n## Local files library\n\n### Indexing files\n\nWhether episodes are available can be determined automatically\nif the video files are present locally or in a mounted network\nstorage or NAS. The library handles this by indexing all files \nand cross-referencing them with the series by name.\n\n\u003e Indexing is resource heavy, which is why it must be done manually.\n\u003e Whenever you add new videos, remember to update the index in the\n\u003e library screen.\n\n### Files not recognized?\n\nThis can happen when the video's file name can not be converted \ninto a meaningful series name, or if the episode information is\nmissing.\n\nThe library extracts the name like this:\n\n1. Normalize the file name to remove special characters.\n2. Find the episode marker in the name, e.g. `S01E05`.\n3. Use everything before this as the name.\n\n```\nGame.Of.Thrones.S01E05.This.Day.All.Gods.Die.mp4\n                ^Episode marker\n```\n\nThis example will give `game of thrones` as result.\n\nTo fix names that were not detected correctly, the auto-detected \nname can be adjusted in the Library UI in the \"Name aliases\" tab.\n\nExample:\n\n- Detected name: `got`.\n- Enter alias: `game of thrones`.\n- Refresh the index. \n\n## Customizing\n\n### Adding custom search links\n\nIn the overview, as well as the series episodes list, it is\npossible to show custom search links to search for the series'\nname or episode number on external websites.\n\nCreate the file `search-links.json` in the project root folder,\nthen paste the following into it:\n\n```json\n[\n  {\n    \"label\": \"Website A\",\n    \"template\": \"https://example.website/?search={SEARCH}\"\n  },\n  {\n    \"label\": \"Website B\",\n    \"template\": \"https://example.website/?search={SEARCH}\"\n  }\n]\n```\n\nYou may add several websites. The `{SEARCH}` placeholder in the \nURL template is replaced by the series' or episode's name and\nnumber.\n\n[TheTVDB]: https://thetvdb.com/\n[Composer]: https://getcomposer.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistralys%2Fseries-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmistralys%2Fseries-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistralys%2Fseries-manager/lists"}