{"id":22397014,"url":"https://github.com/atrox/cain","last_synced_at":"2025-07-31T12:31:32.437Z","repository":{"id":57525666,"uuid":"73183368","full_name":"Atrox/cain","owner":"Atrox","description":":scroll: CAIN - Simple Media Management","archived":false,"fork":false,"pushed_at":"2017-10-12T11:45:54.000Z","size":856,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T21:28:36.609Z","etag":null,"topics":["automation","cain","filebot","media-manager","movie","plex","tv-shows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Atrox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-08T12:22:32.000Z","updated_at":"2021-02-07T20:06:46.000Z","dependencies_parsed_at":"2022-08-28T20:22:26.427Z","dependency_job_id":null,"html_url":"https://github.com/Atrox/cain","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrox%2Fcain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrox%2Fcain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrox%2Fcain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrox%2Fcain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atrox","download_url":"https://codeload.github.com/Atrox/cain/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228242556,"owners_count":17890481,"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":["automation","cain","filebot","media-manager","movie","plex","tv-shows"],"created_at":"2024-12-05T06:10:11.796Z","updated_at":"2024-12-05T06:10:12.342Z","avatar_url":"https://github.com/Atrox.png","language":"Go","readme":"# CAIN - Simple Media Management\n[\u003cimg src=\"https://files.atrox.me/selif/scroll.png\" align=\"right\" width=\"100\"\u003e][repo]\n\nCain *automatically* organises your movies and TV-shows according to your configuration.\nYour favourite torrent/download client should call Cain after the download has finished and Cain will do the rest.\n\n\u003e Cain is still WIP and may very well contain bugs. Please feel free to report those [here][issues]\n\n## Features\n- Fully automated media management\n- Simple to setup and easy to use\n- Plays well with your [Downloader][download-client], [Torrent][torrent-client] Client or whatever else you like to use\n- [FileBot][filebot] under the hood - *No need to reinvent the wheel*\n\n## Installation\n\n### Requirements\n[FileBot][filebot] needs to be installed and the `filebot` executable has to be globally available.\n\n### Install\n[Latest Release][latest-release] is available for all major operating systems as a prebuilt binary.\n\n1. Download and extract the [archive][latest-release]\n2. Put the binary (`cain`) somewhere save and add the location to your `PATH`\n3. Run `cain setup`\n\n### Setup\nBefore you can use Cain you need to configure some basic things first. Cain provides some sensitive defaults to get started with.\n\nRun `cain setup` to interactively configure Cain. After you finished the setup process you are pretty much ready to go.\nNow you can configure your [Downloader][download-client] and/or [Torrent][torrent-client] Client to automatically run Cain after finishing downloading.\n\n## Configuration\n\u003e Location: `~/.config/cain/config.yaml`\n\n- **defaultRetrievePath**: Where to get the unsorted media from\n    - If not specified, parameter `--path` is required.\n- **autoUpdate**: Enable/Disable automatic updates.\n- **language**: [2-letter language code][language-iso-codes] (default: en)\n- **nonStrictMatching**: Enable to non strictly match for movies/tv-shows. Be aware that this could result in wrong matches.\n- **cleanupAfterwards**: Cain will automatically clean the remaining unused/unneeded files after moving the matched files.\n- **hideBanner**: If `true` Cain will no longer show the ascii banner before every command\n\n### Naming Schemes\nPlease see the [FileBot Documentation][filebot-naming] for more informations on this subject.\n\n#### Default Naming Schemes\n- **movie**: `{n} ({y})/{n}`\n- **series/anime**: `{n}/Season {s.pad(2)}/{n} - {s00e00} - {t}`\n- **music**: `{n}/{album}{pi.pad(2)}{artist} - {t}`\n\n### Notifiers\nCain can also automatically notify specific apps for changes.\n\n- **kodi**: `host[:port]` Tell the given Kodi/XBMC instance to rescan it's library\n- **plex**: `host[:token]` Tell the given Plex instance to rescan it's library. Plex Home instances require an [authentication token][plex-token].\n- **emby**: `host:apikey` Tell the given Emby instance to rescan it's library.\n- **pushover**: `userkey` Send update notifications to your devices via Pushover.\n- **pushBullet**: `apikey` Send full reports to all your PushBullet devices\n- **gmail**: `username:password` Use the following gmail account to send and receive full reports. You must use an [App Password][gmail-app-password] for security reasons.\n- **mail**: `host:port:from[:username:password]` Send email via custom mail server\n\n## Command line reference\n- `cain setup`: Configure Cain interactively.\n- `cain run`: Run Cain *(this should idealy be run by your Download/Torrent Client)*\n    - `--path`: Where Cain should look for media to sort. This Parameter is required if `DefaultRetrievePath` is not set.\n    - `--path-env`: Get path from specified environment variable.\n    - `--non-strict`: Enable to non strictly match for movies/tv-shows. Be aware that this could result in wrong matches.\n\n## Contributing\n\nEveryone is encouraged to help improve this project. Here are a few ways you can help:\n\n- [Report bugs][issues]\n- Fix bugs and [submit pull requests][pulls]\n- Write, clarify, or fix documentation\n- Suggest or add new features\n\n[filebot]: http://www.filebot.net/\n[filebot-naming]: http://www.filebot.net/naming.html\n\n[download-client]: https://github.com/Atrox/cain/wiki/Download-Clients\n[torrent-client]: https://github.com/Atrox/cain/wiki/Torrent-Clients\n\n[repo]: https://github.com/atrox/cain\n[issues]: https://github.com/atrox/cain/issues\n[pulls]: https://github.com/atrox/cain/pulls\n[latest-release]: https://github.com/atrox/cain/releases/latest\n\n[language-iso-codes]: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n[plex-token]: https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\n[gmail-app-password]: https://support.google.com/accounts/answer/185833?hl=en\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrox%2Fcain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatrox%2Fcain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrox%2Fcain/lists"}