diff --git a/README.md b/README.md index d3a3c32..be1b1cb 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,121 @@ # CrunchyRoll.js -*CrunchyRoll.js* is capable of downloading *anime* episodes from the popular -*CrunchyRoll* streaming service. An episode is stored in the original video format -(often H.264 in a MP4 container) and the configured subtitle format (ASS or -SRT).The two output files are then merged into a single MKV file. +*CrunchyRoll.js* is capable of downloading *anime* episodes from the popular *CrunchyRoll* streaming service. An episode is stored in the original video format (often H.264 in a MP4 container) and the configured subtitle format (ASS or SRT).The two output files are then merged into a single MKV file. ## Motivation -*CrunchyRoll* has been providing an amazing streaming service and offers the -best way to enjoy *anime* in a *convenient* and *legal* way. As a streaming -service, video files cannot be downloaded and watched offline. Understandable -from a business perspective and considering possible contract implications, but -annoying for users. This application enables episodes to be downloaded for -offline convenience. Please do not abuse this application; download episodes for -**personal use** and **delete them** if you do not have an active premium -account. Continue to support *CrunchyRoll*; without our financial backing their -service cannot exist! +*CrunchyRoll* has been providing an amazing streaming service and offers the best way to enjoy *anime* in a *convenient* and *legal* way. As a streaming service, video files cannot be downloaded and watched offline. Understandable from a business perspective and considering possible contract implications, but annoying for users. This application enables episodes to be downloaded for offline convenience. Please do not abuse this application; download episodes for **personal use** and **delete them** if you do not have an active premium account. Continue to support *CrunchyRoll*; without our financial backing their service cannot exist! ## Legal Warning -This application is not endorsed or affliated with *CrunchyRoll*. The usage of -this application enables episodes to be downloaded for offline convenience which -may be forbidden by law in your country. Usage of this application may also -cause a violation of the agreed *Terms of Service* between you and the stream -provider. A tool is not responsible for your actions; please make an informed -decision prior to using this application. - -## Status - -### Implemented - -* Subtitle decoding. -* Subtitle converter for SRT subtitle output. -* Video streaming. -* Episode page scraping with subtitle saving and video streaming. -* Add ASS support. -* Add muxing (MP4+ASS=MKV). -* Add series API to save an entire series rather than per-episode. -* Add support for incremental saves. -* Add batch-mode to queue a bunch of series. -* Add CLI interface with all the options. -* Support scheduled merging; if it fails now, the video is probably being watched. -* Add authentication to the entire stack to support premium content. -* Binary runner for `npm` -* Windows examples with a .bat for ease of use. -* Publish to `npm` with a fixed package.json. -* Conversion to beautiful TypeScript 1.4 code. - -### Pending Implementation - -* Documentation. -* Enjoy beautiful anime series from disk when internet is down. +This application is not endorsed or affliated with *CrunchyRoll*. The usage of this application enables episodes to be downloaded for offline convenience which may be forbidden by law in your country. Usage of this application may also cause a violation of the agreed *Terms of Service* between you and the stream provider. A tool is not responsible for your actions; please make an informed decision prior to using this application. ## Configuration -Set defaults in https://www.crunchyroll.com/acct/?action=video. We'll use that. +It is recommended to enable authentication (`-p` and `-u`) so your account permissions and settings are available for use. It is not possible to download non-free material without an account and premium subscription. Furthermore, the default account settings are used when downloading. If you want the highest quality videos, configure these preferences at https://www.crunchyroll.com/acct/?action=video. + + +## Prerequisites + +* NodeJS >= 0.12.x (http://nodejs.org/) +* NPM >= 2.5.x (https://www.npmjs.org/) + +## Installation + +Use the applicable instructions to install. Is your operating system not listed? Please ask or contribute! + +### Debian (Mint, Ubuntu, etc) + +1. Run in *Terminal*: `sudo apt-get install nodejs npm mkvtoolnix rtmpdump` +2. Run in *Terminal*: `sudo ln -s /usr/bin/nodejs /usr/bin/node` +3. Run in *Terminal*: `sudo npm install -g crunchyroll` + +### Mac OS X + +1. Install *Homebrew* following the instructions at http://brew.sh/ +2. Run in *Terminal*: `brew install node mkvtoolnix rtmpdump` +3. Run in *Terminal*: `npm install -g crunchyroll` + +### Windows + +1. Install *NodeJS* following the instructions at http://nodejs.org/ +3. Run in *Command Prompt*: `npm install -g crunchyroll` + +## Instructions + +Use the applicable instructions for the interface of your choice (currently limited to command-line). + +### Command-line Interface (`crunchyroll`) + +The [command-line interface](http://en.wikipedia.org/wiki/Command-line_interface) does not have a graphical component and is ideal for automation purposes and headless machines. The interface can run using a sequence of series addresses (the site address containing the episode listing), or with a batch-mode source file. The `crunchyroll --help` command will produce the following output: + + Usage: crunchyroll [options] + + Options: + + -h, --help output usage information + -V, --version output the version number + -p, --pass The password. + -u, --user The e-mail address or username. + -c, --cache Disables the cache. + -m, --merge Disables merging subtitles and videos. + -e, --episode The episode filter. + -v, --volume The volume filter. + -f, --format The subtitle format. (Default: ass) + -o, --output The output path. + -s, --series The series override. + -t, --tag The subgroup. (Default: CrunchyRoll) + +#### Batch-mode + +When no sequence of series addresses is provided, the batch-mode source file will be read (which is *CrunchyRoll.txt* in the current work directory. Each line in this file is processed as a seperate command-line statement. This makes it ideal to manage a large sequence of series addresses with variating command-line options or incremental episode updates. + +#### Examples + +Download in batch-mode: + + crunchyroll + +Download *Fairy Tail* to the current work directory: + + crunchyroll http://www.crunchyroll.com/fairy-tail + +Download *Fairy Tail* to `C:\Manga`: + + crunchyroll --output C:\Manga http://www.crunchyroll.com/fairy-tail + +#### Switches + +##### Authentication + +* `-p or --pass ` sets the password. +* `-u or --user ` sets the e-mail address or username. + +##### Disables + +* `-c or --cache` disables the cache. +* `-m or --merge` disables merging subtitles and videos. + +##### Filters + +* `-e or --episode ` filters episodes (positive is greater than, negative is smaller than). +* `-v or --volume ` filters volumes (positive is greater than, negative is smaller than). + +##### Settings + +* `-f or --format ` sets the subtitle format. (Default: ass) +* `-o or --output ` sets the output path. +* `-s or --series ` sets the series override. +* `-t or --tag ` sets The subgroup. (Default: CrunchyRoll) ## Developers +More information will be added at a later point. For now the recommendations are: + * Visual Studio 2013 Update 4 (Core) * NodeJS Tools (Debugging) * TypeScript 1.4 (Language) * ReSharper 9.0+ (Hints/Formatting) * Web Essentials (TSLint) -## Work In Progress - -Open an issue or e-mail me directly. I'd be happy to answer your questions. +Since this project uses TypeScript, compile with `node ts` or `npm install`. diff --git a/package.json b/package.json index 806a633..cb552d4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "type": "git", "url": "git://github.com/Deathspike/crunchyroll.js.git" }, - "version": "1.1.0", + "version": "1.1.1", "bin": { "crunchyroll": "./bin/crunchyroll" }, @@ -33,4 +33,4 @@ "test": "node ts --only-test", "tsd": "./node_modules/.bin/tsd reinstall --overwrite" } -} \ No newline at end of file +}