Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/naholyr/show-time
Watch TV shows and movies with a simple CLI
https://github.com/naholyr/show-time
javascript movies nodejs opensubtitles popcorn-time showrss torrent tv-shows
Last synced: about 1 month ago
JSON representation
Watch TV shows and movies with a simple CLI
- Host: GitHub
- URL: https://github.com/naholyr/show-time
- Owner: naholyr
- License: mit
- Created: 2015-10-30T18:14:42.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-06T14:56:34.000Z (about 2 years ago)
- Last Synced: 2024-10-31T22:32:36.679Z (about 1 month ago)
- Topics: javascript, movies, nodejs, opensubtitles, popcorn-time, showrss, torrent, tv-shows
- Language: JavaScript
- Homepage: http://showrss.info
- Size: 784 KB
- Stars: 76
- Watchers: 6
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# show-time
Watch episodes of your favorite TV shows with a simple CLI, using http://showrss.info
**Required: Node ≥ 6**
## Main features
* Shows and plays **latest episode** from your own showrss feed, or **movies** from usual torrent providers
* **Browse mode**: if you don't want to bother creating your showrss feed, want to discover a new serie or watch older episodes, this mode will list all available shows, then all available episodes, enjoy!
* **Download mode**: only download episodes (run multiple instances of this the days before your long train trip)
* **Offline mode**: browse and watch previously downloaded episodes (during your long train trip)## Installation
* Using `npx` (included in npm ≥ 5.3.0): run with ``npx show-time`` and skip install
* Using `npm`: ``npm install -g show-time``
* Using `yarn`: ``yarn global install show-time``## Configuration (optional)
Those steps are optional, you can just run `show-time` and skip the feed option, you'll be in "Browse mode" by default.
* Register at [ShowRSS](http://showrss.info) (just a login/password, no mail or real name)
* Configure your feed, just follow the steps on the website
* Run ``show-time --configure`` to initialize your configuration## Usage
```sh
show-time
```* Select your episode, subtitles, and enjoy :)
### Alternative usages
`show-time` provides a personal experience when used with showrss, but you have many options to enjoy your show without any configuration required:
* View a given show's episodes: `show-time `
* Note: using initials can work too (eg. `show-time twd` will bring you *The Walking Dead*'s episodes)
* Browse all shows: `show-time --browse`
* Search for movies: `show-time --movie`In all cases you can add `--download` option to just download, and watch later with `show-time --offline`
Simply enjoy :)
### Demo
![](https://github.com/naholyr/show-time/raw/master/screencast.gif)
### CLI options
```
Directly select this show (ignoring your feed)
--version, -v Show version and exit
--help, -h Show this help and exit
--clear-cache Clears cache and exit
--configure Configuration wizard
--config Use alternative configuration file
--cache Path to cache (--no-cache to disable)
--player Automatically play to given player
--feed ShowRSS feed URL
--lang Preferred language for subtitles
--download Download mode
--offline Offline mode
--browse Browse mode
--movie Movie modeValid players: chromecast, vlc, airplay, mplayer, smplayer, mpchc, potplayer, mpv, omx, webplay, jack
```### Known bugs
* It happens castnow fails to start, I quit and restart a few seconds/minutes later and it works again
## How it works
* ``show-time`` grabs your RSS feed from showrss.info to show a list of recently available episodes
* It will then search on opensubtitles.org for subtitles (results cached for 1 hour)
* Once the torrent magnet and the subtitles grabbed, it runs ``peerflix`` to download and play video## Special modes
### Download mode
Option ``--download`` is an alias to ``--no-player --port=0 --peer-port=0``:
* ``--no-player`` disable playing video once ready
* ``--port=0`` and ``--peer-port=0`` sets Peerflix's bound ports to 0, which means arbitrary defined by operating systemBinding arbitrary free ports and not playing video means you can run the command as many times as you want.
### Offline mode
In offline mode, show-time will only fetch information already in cache:
* You select an episode amongst those already (even partially) previously downloaded
* You can use downloaded subtitles, but won't download new ones
* Video is played immediatelyThis mode works particularly fine with download mode: run ``show-time --download`` to fetch a full episode, then once disconnected run ``show-time --offline`` and here you go :)
### Browse mode
show-time will ignore your feed (previously configured or not) and fetch all available shows from showrss.info:
* Search amongst the shows to select the one you want to see (just type to filter)
* Specific feed is used to liste available episodes for this show only
* That's all folks
* Lazy? If cache was enabled, your previously selected shows will appear first in the listAll other options (cache, download…) will apply, except `--offline` which is obviously incompatible. If cache is enabled, video will be stored in usual place and will be accessible from Offline mode like any other.
### Movie mode
show-time will ignore your feed (previously configured or not) and display a search box for movies:
* Search by title with YTS API (more to come, and sorry for the weird results their engine looks buggy, like 'Doctor St' will return nothing but 'Doctor S' and 'Doctor Strange' will work)
* Then select quality, subtitles, usual stuff…
* If cache is enabled it will simply be stored amongst your TV showsAll other options (cache, download…) will apply, except `--offline` which is obviously incompatible. If cache is enabled, video will be stored in usual place and will be accessible from Offline mode like any other.
## The cache
A lot of things are put in the cache, which is located at ``$HOME/.show-time/cache``:
* The downloaded torrents
* OpenSubtitles results (.json)
* Subtitles (.srt)You can remove files manually, or you can empty the whole cache with ``show-time --clear-cache``
## Alternatives
* [**`torrentflix`**](https://github.com/ItzBlitz98/torrentflix) does a nice job for movies, less useful for TV shows. You'll be asked for choosing amongst many search engines, while `show-time` is limited to YTS (piratebay on the way, using proxies).
* **PopCorn-Time** well, it's obviously best option, but it's gone. Plus it wasn't really TV-shows friendly and a GUI is not always the fastest way to enjoy your show.
* [**`torrent-live`**](https://github.com/Ayms/torrent-live) really takes your privacy seriously, great deal! however you won't find search or feeds, support for subtitles, and it does not seem maintained.
* [**`pw3`**](https://github.com/ewnd9/pw3) works great for TV shows and has a nice "Marathon" option, but relies on kat.cr which is currently down.
* [**`termflix`**](https://github.com/asarode/termflix) is deprecated in favor of `torrentflix`, but has a nice Marathon option too.Those alternatives, like `show-time` have their pros and cons. Some of their options I'd like to implement here (Marathon mode, better search for movies and subtitles), but meanwhile choose the right tool for your fun :)
## Future
If you want to contribute to this project, here are some ideas:
* Enable Download mode to work quietly in background, and add ability to exit when downloaded 100%.
* Make it possible to use [DuckieTV](http://schizoduckie.github.io/DuckieTV/) instead of showrss, maybe the default so we don't rely on a third-party service for the subscriptions.
* Rely on [torrent-search-api](https://github.com/JimmyLaurent/torrent-search-api) instead of my own implementations for movies search.
* Use [subdb](https://github.com/arshad/subdb-cli): very accurate subtitles (based on file hash) but usually only English subtitles are really available (which is anyway what you're already used to if you watch episodes quickly).
* Add option to delete downloaded episode once it's viewed.
* Track viewed episodes to remove them from proposed list, then add Marathon mode.