A CLI downloader for Crunchyroll. Search for a series or paste a link, select the episodes you want, choose the dub, quality, and subtitles, and get everything muxed into a single MKV file.
No flags or complicated commands. Run the script and use the menu.
LastPerson07
yt-dlp /usr/local/bin/yt-dlp
ffmpeg /usr/bin/ffmpeg
mp4decrypt /usr/local/bin/mp4decrypt
wvd .../LastPerson07/LastPerson07.wvd
Loaded 18 cookies from cr_cookies.txt
Logged in
1. Search a show
2. Paste a link
3. Quit
- Python 3.8+
yt-dlpffmpegmp4decrypt(Bento4)- Your own Widevine CDM
Install the Python dependencies:
pip install curl_cffi pywidevineMake sure yt-dlp, ffmpeg, and mp4decrypt are available in your PATH or placed next to the script. Windows executables are supported.
A .wvd file is required. It isn't included with the project.
Place your own legally obtained CDM file at:
LastPerson07/LastPerson07.wvd
The script checks for this file at startup and exits if it can't find it.
The script uses the etp_rt cookie from your Crunchyroll session.
Export your cookies in Netscape format and save them as:
LastPerson07/cookies.txt
It also checks for cookies.txt and cr_cookies.txt in the script's directory.
If no cookie file is found, you'll be prompted to enter the etp_rt value. The access token is cached in .lp07_token.json.
python LastPerson07.pySelect an option from the menu:
- Search for a series.
- Paste a
/series/or/watch/URL. - Quit.
Choose a season and enter an episode range:
1— episode 11-5— episodes 1 through 5all— all episodes in the season
For each episode, select the dub, video quality, and subtitles. Previous selections are used as defaults for subsequent episodes.
Files are saved under Crunchyroll Files/<Series Name>/ with filenames in this format:
Series.S01E02.Episode.Title.mkv
Poster artwork is embedded as cover art.
- Audio and video are downloaded separately and muxed into an MKV using FFmpeg.
- FFmpeg uses
-ignore_editlist 1to handle the audio edit list found in some Crunchyroll streams. - Audio tracks are downloaded sequentially to avoid
TOO_MANY_ACTIVE_STREAMSerrors. - Playback tokens are released after downloads and when the script is interrupted.
- Available quality depends on your subscription and the source. Some older titles are only available at 480p.
This project is not affiliated with or endorsed by Crunchyroll. Accessing or decrypting protected streams may violate its terms of service or local laws. Use it only where you have the necessary rights and authorization.