|
1 | 1 | # CrunchyRoll.js
|
2 | 2 |
|
3 |
| -*CrunchyRoll.js* is capable of downloading *anime* episodes from the popular |
4 |
| -*CrunchyRoll* streaming service. An episode is stored in the original video format |
5 |
| -(often H.264 in a MP4 container) and the configured subtitle format (ASS or |
6 |
| -SRT).The two output files are then merged into a single MKV file. |
| 3 | +*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. |
7 | 4 |
|
8 | 5 | ## Motivation
|
9 | 6 |
|
10 |
| -*CrunchyRoll* has been providing an amazing streaming service and offers the |
11 |
| -best way to enjoy *anime* in a *convenient* and *legal* way. As a streaming |
12 |
| -service, video files cannot be downloaded and watched offline. Understandable |
13 |
| -from a business perspective and considering possible contract implications, but |
14 |
| -annoying for users. This application enables episodes to be downloaded for |
15 |
| -offline convenience. Please do not abuse this application; download episodes for |
16 |
| -**personal use** and **delete them** if you do not have an active premium |
17 |
| -account. Continue to support *CrunchyRoll*; without our financial backing their |
18 |
| -service cannot exist! |
| 7 | +*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! |
19 | 8 |
|
20 | 9 | ## Legal Warning
|
21 | 10 |
|
22 |
| -This application is not endorsed or affliated with *CrunchyRoll*. The usage of |
23 |
| -this application enables episodes to be downloaded for offline convenience which |
24 |
| -may be forbidden by law in your country. Usage of this application may also |
25 |
| -cause a violation of the agreed *Terms of Service* between you and the stream |
26 |
| -provider. A tool is not responsible for your actions; please make an informed |
27 |
| -decision prior to using this application. |
28 |
| - |
29 |
| -## Status |
30 |
| - |
31 |
| -### Implemented |
32 |
| - |
33 |
| -* Subtitle decoding. |
34 |
| -* Subtitle converter for SRT subtitle output. |
35 |
| -* Video streaming. |
36 |
| -* Episode page scraping with subtitle saving and video streaming. |
37 |
| -* Add ASS support. |
38 |
| -* Add muxing (MP4+ASS=MKV). |
39 |
| -* Add series API to save an entire series rather than per-episode. |
40 |
| -* Add support for incremental saves. |
41 |
| -* Add batch-mode to queue a bunch of series. |
42 |
| -* Add CLI interface with all the options. |
43 |
| -* Support scheduled merging; if it fails now, the video is probably being watched. |
44 |
| -* Add authentication to the entire stack to support premium content. |
45 |
| -* Binary runner for `npm` |
46 |
| -* Windows examples with a .bat for ease of use. |
47 |
| -* Publish to `npm` with a fixed package.json. |
48 |
| -* Conversion to beautiful TypeScript 1.4 code. |
49 |
| - |
50 |
| -### Pending Implementation |
51 |
| - |
52 |
| -* Documentation. |
53 |
| -* Enjoy beautiful anime series from disk when internet is down. |
| 11 | +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. |
54 | 12 |
|
55 | 13 | ## Configuration
|
56 | 14 |
|
57 |
| -Set defaults in https://www.crunchyroll.com/acct/?action=video. We'll use that. |
| 15 | +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. |
| 16 | + |
| 17 | + |
| 18 | +## Prerequisites |
| 19 | + |
| 20 | +* NodeJS >= 0.12.x (http://nodejs.org/) |
| 21 | +* NPM >= 2.5.x (https://www.npmjs.org/) |
| 22 | + |
| 23 | +## Installation |
| 24 | + |
| 25 | +Use the applicable instructions to install. Is your operating system not listed? Please ask or contribute! |
| 26 | + |
| 27 | +### Debian (Mint, Ubuntu, etc) |
| 28 | + |
| 29 | +1. Run in *Terminal*: `sudo apt-get install nodejs npm mkvtoolnix rtmpdump` |
| 30 | +2. Run in *Terminal*: `sudo ln -s /usr/bin/nodejs /usr/bin/node` |
| 31 | +3. Run in *Terminal*: `sudo npm install -g crunchyroll` |
| 32 | + |
| 33 | +### Mac OS X |
| 34 | + |
| 35 | +1. Install *Homebrew* following the instructions at http://brew.sh/ |
| 36 | +2. Run in *Terminal*: `brew install node mkvtoolnix rtmpdump` |
| 37 | +3. Run in *Terminal*: `npm install -g crunchyroll` |
| 38 | + |
| 39 | +### Windows |
| 40 | + |
| 41 | +1. Install *NodeJS* following the instructions at http://nodejs.org/ |
| 42 | +3. Run in *Command Prompt*: `npm install -g crunchyroll` |
| 43 | + |
| 44 | +## Instructions |
| 45 | + |
| 46 | +Use the applicable instructions for the interface of your choice (currently limited to command-line). |
| 47 | + |
| 48 | +### Command-line Interface (`crunchyroll`) |
| 49 | + |
| 50 | +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: |
| 51 | + |
| 52 | + Usage: crunchyroll [options] |
| 53 | + |
| 54 | + Options: |
| 55 | + |
| 56 | + -h, --help output usage information |
| 57 | + -V, --version output the version number |
| 58 | + -p, --pass <s> The password. |
| 59 | + -u, --user <s> The e-mail address or username. |
| 60 | + -c, --cache Disables the cache. |
| 61 | + -m, --merge Disables merging subtitles and videos. |
| 62 | + -e, --episode <i> The episode filter. |
| 63 | + -v, --volume <i> The volume filter. |
| 64 | + -f, --format <s> The subtitle format. (Default: ass) |
| 65 | + -o, --output <s> The output path. |
| 66 | + -s, --series <s> The series override. |
| 67 | + -t, --tag <s> The subgroup. (Default: CrunchyRoll) |
| 68 | + |
| 69 | +#### Batch-mode |
| 70 | + |
| 71 | +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. |
| 72 | + |
| 73 | +#### Examples |
| 74 | + |
| 75 | +Download in batch-mode: |
| 76 | + |
| 77 | + crunchyroll |
| 78 | + |
| 79 | +Download *Fairy Tail* to the current work directory: |
| 80 | + |
| 81 | + crunchyroll http://www.crunchyroll.com/fairy-tail |
| 82 | + |
| 83 | +Download *Fairy Tail* to `C:\Manga`: |
| 84 | + |
| 85 | + crunchyroll --output C:\Manga http://www.crunchyroll.com/fairy-tail |
| 86 | + |
| 87 | +#### Switches |
| 88 | + |
| 89 | +##### Authentication |
| 90 | + |
| 91 | +* `-p or --pass <s>` sets the password. |
| 92 | +* `-u or --user <s>` sets the e-mail address or username. |
| 93 | + |
| 94 | +##### Disables |
| 95 | + |
| 96 | +* `-c or --cache` disables the cache. |
| 97 | +* `-m or --merge` disables merging subtitles and videos. |
| 98 | + |
| 99 | +##### Filters |
| 100 | + |
| 101 | +* `-e or --episode <i>` filters episodes (positive is greater than, negative is smaller than). |
| 102 | +* `-v or --volume <i>` filters volumes (positive is greater than, negative is smaller than). |
| 103 | + |
| 104 | +##### Settings |
| 105 | + |
| 106 | +* `-f or --format <s>` sets the subtitle format. (Default: ass) |
| 107 | +* `-o or --output <s>` sets the output path. |
| 108 | +* `-s or --series <s>` sets the series override. |
| 109 | +* `-t or --tag <s>` sets The subgroup. (Default: CrunchyRoll) |
58 | 110 |
|
59 | 111 | ## Developers
|
60 | 112 |
|
| 113 | +More information will be added at a later point. For now the recommendations are: |
| 114 | + |
61 | 115 | * Visual Studio 2013 Update 4 (Core)
|
62 | 116 | * NodeJS Tools (Debugging)
|
63 | 117 | * TypeScript 1.4 (Language)
|
64 | 118 | * ReSharper 9.0+ (Hints/Formatting)
|
65 | 119 | * Web Essentials (TSLint)
|
66 | 120 |
|
67 |
| -## Work In Progress |
68 |
| - |
69 |
| -Open an issue or e-mail me directly. I'd be happy to answer your questions. |
| 121 | +Since this project uses TypeScript, compile with `node ts` or `npm install`. |
0 commit comments