{"id":13551273,"url":"https://github.com/ilarramendi/BetterCovers","last_synced_at":"2025-04-03T01:32:02.589Z","repository":{"id":39711419,"uuid":"420599137","full_name":"ilarramendi/BetterCovers","owner":"ilarramendi","description":"BetterCovers is a fully customizable script to automaticaly generate covers and backdrops with embeded ratings, mediainfo, language, certifications, age ratings, source, production companies, etc!","archived":false,"fork":false,"pushed_at":"2022-06-02T19:06:18.000Z","size":13892,"stargazers_count":40,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-03T21:37:40.814Z","etag":null,"topics":["backdrop","cover","emby","imdb","jellyfin","letterboxd","metacritic","omdb","poster","tmdb","tvtime"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ilarramendi.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":"2021-10-24T05:50:20.000Z","updated_at":"2024-08-20T06:53:37.000Z","dependencies_parsed_at":"2022-09-20T08:33:18.499Z","dependency_job_id":null,"html_url":"https://github.com/ilarramendi/BetterCovers","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilarramendi%2FBetterCovers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilarramendi%2FBetterCovers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilarramendi%2FBetterCovers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilarramendi%2FBetterCovers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilarramendi","download_url":"https://codeload.github.com/ilarramendi/BetterCovers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246922242,"owners_count":20855341,"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":["backdrop","cover","emby","imdb","jellyfin","letterboxd","metacritic","omdb","poster","tmdb","tvtime"],"created_at":"2024-08-01T12:01:45.373Z","updated_at":"2025-04-03T01:32:00.595Z","avatar_url":"https://github.com/ilarramendi.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Better Covers\nBetterCovers is a script to automaticaly generate covers and backdrops with embeded ratings, mediainfo, language, certifications, age ratings, source, production companies, etc!\n\n## Examples\n\u003cimg src=\"https://user-images.githubusercontent.com/30437204/170800614-e4f1ff01-7fff-4cae-91a9-1a83528b9865.jpg\" title=\"Free Guy\" width=\"49.7%\"\u003e \u003cimg src=\"https://user-images.githubusercontent.com/30437204/170798832-ce6621fd-06e7-4442-8dbf-1614de14af8e.jpg\" title=\"Family Guy Season 11\" width=\"49.7%\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/30437204/170798830-06c0388d-f294-4b91-91d9-e8b8f969bd98.jpg\" title=\"Castle Rock Season 1 Episode 6\" width=\"100%\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/30437204/170800901-0389e701-e491-4b6a-8b10-654c3bffd97f.jpg\" title=\"Free Guy\" width=\"100%\"\u003e\n\nThe script is made to be fully customizable, all properties can be disabled and custom cover templates can be selected based on a large number of filters!   \nAfter executing the script you have to refresh the library on Emby/Plex/Jellyfin for this to take effect! (Or configure the agent in the config file to automaticaly update the library!)\n\n## Downloading\n### Docker\nThe easiest option for running is using [docker](https://hub.docker.com/r/ilarramendi/bettercovers).  \n``` \ndocker run -i --rm \\\n  -v /path/to/media:/media \\\n  -v /path/to/config:/config \\\n  -e parameters=\"-w 50\" `#OPTIONAL` \\\n  -e fileMask=\"*\" `#OPTIONAL` \\\n  ilarramendi/bettercovers\n```\n### Python\nClone the project: `git clone https://github.com/ilarramendi/BetterCovers`  \nInstall python requirments: `pip3 install requests jellyfish exif`  \nInstall program requirments: `sudo apt install -y chromium-browser ffmpeg`  \nRun: `python3 BetterCovers.py '/path/to/media/*'`  \n \n## Folder structure\nEach movie needs to be inside a unique folder.  \nEach TV show season must be inside a unique folder.  \nFor better identification folders names can have imdb and/or tmdb ids like: `[tmdbid=123456]` or `[imdbid=123456]`   \n\n## Planned features (Please suggest more)\n- [ ] Option to save images on Agent metadata folder to improve menu loading time (media images on HDD load a bit slow on emby) (linx file to another drive with linux?)\n- [ ] Different themes (suggestions are apreciate)\n- [ ] Use existing cover\n- [ ] Add aditional mediainfo properties (dolby, ATMOS, audio channels)\n- [ ] Add connection with Sonarr and Radarr api (or script on import)\n- [ ] Add connection to plex api\n- [ ] Add original downloaded image cache for faster cover creation (wkhtmltopdf cache not working)\n- [ ] Make docker container lighter and faster\n- [ ] Web Ui (WIP: [ilarramendi/BetterCovers-Frontend](https://github.com/ilarramendi/BetterCovers-Frontend))\n\n## Config.json\n[config.md](https://github.com/ilarramendi/BetterCovers/blob/main/docs/config.md)\n\n## Parameters\n`-o` Ovewrite any cover found (images are automaticaly overwriten if info changes)  \n`-wd /path/to/wd` Change the default working directory (where config files, images and covers are stored)    \n`-w number` Number of workers to use, default 20 (using too many workers can result in images not loading correctly or hitting api limits)  \n`--log-level number` Verbose level from 0 to 5, default 2.  \n`--dry` Performs a dry run, only getting metadata, not generating any image.  \n`--json` Save metadata to metadata.json (usefull for debugin and getting data out for other programs).  \n`--no-colors` Remove colors from output (Usefull for docker).  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filarramendi%2FBetterCovers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filarramendi%2FBetterCovers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filarramendi%2FBetterCovers/lists"}