media_organizer/README.md

69 lines
3.6 KiB
Markdown
Raw Normal View History

2021-03-31 14:51:33 +00:00
# media_organizer
*A set of python scripts to rename movies and tv shows.*
2021-03-31 14:51:33 +00:00
This project is used and tested under Linux and is ideal to be used from something like a Raspberry Pi or a Linux based NAS. If you want to help me to get it to work under Windows, please contribute.
2021-03-31 15:03:11 +00:00
## Run
Clone the repo, setup config file (see below) and run `interface.py`.
2021-03-31 15:03:11 +00:00
2021-03-31 14:51:33 +00:00
## moviesort
Detect movie names by querying [themoviedb.org](https://www.themoviedb.org/) API and renaming the file based on a selection of possible matches. Follow the config file instructions bellow to get your API key.
2021-03-31 14:51:33 +00:00
All data is courtesy of [The Movie Database](https://www.themoviedb.org), please contribute to this excellent database.
Movies will get renamed to this nameing style, a more flexible solution is in pending:
**{movie-name} {Year}/{movie-name} {Year}.{ext}**
2021-03-31 14:51:33 +00:00
## tvsort
Detect tv show filenames by querying the publicly available [tvmaze.com](https://www.tvmaze.com/) API to identify the show name and the episode name based on a selection of possible matches.
2021-03-31 14:51:33 +00:00
Episodes are named in this style, a more flexible solution is in pending:
**{show-name}/Season {nr}/show-name - S{nr}E{nr} - {episode-name}.{ext}**
2021-03-31 14:51:33 +00:00
## db_export
Export the library to csv files. Calles the Emby API to get a list of movies and episodes and exports this to a convenient set ov CSV files.
2021-03-31 14:51:33 +00:00
## trailers
Downloading trailers from links provided from emby and move them into the movie folder.
Trailers are named in this style, a more flexible solution is in pending:
**{movie-name} {Year}_{youtube-id}_trailer.mkv**
2021-04-17 08:53:59 +00:00
## bad_id
Sometimes Emby get's it wrong. Sometimes this script can get it wrong too. The *Fix Movie Names* function goes through the movie library looking for filenames that don't match with the movie name as identified in emby.
2021-03-31 14:51:33 +00:00
## setup
### install
These are the none standard Python libraries in use in this project:
* [requests](https://pypi.org/project/requests/)
* Install on Arch: `sudo pacman -Qi python-request`
* Install with pip: `pip install request`
* [trash-cli](https://pypi.org/project/trash-cli/)
* Install on Arch: `sudo pacman -S trash-cli`
* Install with pip: `pip install trash-cli`
* [youtube-dl](https://pypi.org/project/youtube_dl/)
* Install on Arch: `sudo pacman -S youtube-dl`
* Install with pip: `pip install youtube_d`
2021-03-31 14:51:33 +00:00
* curses
* Is already installed on most linux based systems.
* On Windows: `pip install windows-curses`
2021-04-23 10:15:30 +00:00
### config json file:
Duplicate the config.sample.json file to a file named *config.json* and set the following variables:
#### media
2021-03-31 14:51:33 +00:00
* `tv_downpath`: Folder path where the tv episodes get downloaded to.
* `movie_downpath`: Folder path where the movie files get downloaded to.
* `sortpath`: Empty folder the media_organizer can use to as a temporary sort path.
* `moviepath`: Root folder where the organized movie files will go.
* `tvpath`: Root folder where the organized tv episodes will go.
2021-04-23 10:40:26 +00:00
* `ext`: A list of valid media file extensions to easily filter out none media related files.
* `log_path`: Path to a folder to output all renaming done to keep track and check for any errors and safe csv files.
* `movie_db_api`: Register and get your themoviedb.com **API Key (v3 auth)** acces from [here](https://www.themoviedb.org/settings/api).
* `min_file_size`: Minimal filesize to be considered a relevant media file in bytes.
2021-04-23 10:15:30 +00:00
#### Emby integration
* `emby_url`: url where your emby instance is reachable
* `emby_user_id`: user id of your emby user
* `emby_api_key`: api key for your user on emby
2021-04-23 10:15:30 +00:00
#### ydl_opts *Trailer download:*
Arguments under the [ydl_opts] section will get passed in to youtube-dl for *trailers*. Check out the documentation for details.