https://github.com/alisoftware/tvshoworganizer
https://github.com/alisoftware/tvshoworganizer
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/alisoftware/tvshoworganizer
- Owner: AliSoftware
- Created: 2015-05-16T23:04:59.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2018-06-30T19:52:56.000Z (almost 8 years ago)
- Last Synced: 2025-01-25T12:41:25.584Z (over 1 year ago)
- Language: Ruby
- Size: 22.5 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TV Show Organizer
This is a little ruby tool to automatically rename TV Show video files (according to my naming preference) and move them to the appropriate directory (appropriate for XBMC/Kodi).
## Features
This took takes an input folder and output folder, then it:
* looks for files with extension `mp4`,`m4v`,`avi` or `mkv` in the input folder (discarding filenames containing `Sample`)
* parses the file name to extract the TVShow name, season number and episode number.
_(To do that, it expects the file name to match `Show.Name.S01E02.Anything.ext`)_
* fetches the name of the episode using [TheTVDB](http://thetvdb.com) [API](http://thetvdb.com/wiki/index.php?title=Programmers_API)
* renames the file to `Show Name - 1x02 - Episode Title.ext` and moves it to the subfolder `Show Name/Season 1/` of the output folder.
Once every video files of the input folder have been moved and renamed appropriately, it finally uses [Kodi](http://kodi.tv/about/)'s [JSON-RPC API](http://kodi.wiki/view/JSON-RPC_API/v6) to refresh the Kodi database, so that those shows appear in your Kodi library.
## Usage
1. the `TheTVDB` API needs an API Key to use it. You need to get one and write it to a file named `thetvdb.apikey` saved next to the other files so that the script can use it.
2. Then use `tvshows_organizer.rb` as the entry point, invoked either from ruby code (using `TVShowsOrganizer` module) or from the command line
### Invoke from ruby
```ruby
require 'tvshows_organizer'
# Search the TheTVDB's show ID of a given show
TVShowsOrganizer::run_query(:query => 'Game of Thrones')
# Add a show to the shows.yml database
TVShowsOrganizer::add_show(:name => 'Game of Thrones', :id => '121361')
# Move video files to destination, renaming them appropriately.
TVShowsOrganizer::move_files(source_dir, dest_dir, :interactive => true, :kodi_auth => 'login:pass')
```
### Invoke from the command line
Use `tvshows_organizer.rb --help` to know how to use it and which options are available.
```sh
# Search the TheTVDB's show ID of a given show
$ ./tvshows_organizer.rb -q "House of Cards"
# Add a show to the shows.yml database: use query + interactive mode
$ ./tvshows_organizer.rb -qi "House of Cards"
# Move video files to destination, renaming them appropriately.
$ ./tvshows_organizer.rb -i source_dir dest_dir --kodi login:pass
```