CRDL - CrunchyRoll DownLoader Capturing snapshot of "browse all" list (entire available streaming catalog), or your personal "watchlist" Disclaimer: This only looks at the show's metadata, it does not download or access any actual videos. While the way the data is retrieved should be minimally invasive as to server access, I cannot guarantee that crunchyroll will not take action against your account when using this. Usage: 'crdl.pl browse' - Current CrunchyRoll shows, alphabetical 'crdl.pl watchlist' - Current CrunchyRoll personal watchlist Options: -conf : Filename of config file (default: 'crdl.conf') -i : Read JSON data from file, rather than download from CR. Sets timestamp from filename. -json: Store JSON-responses from the server -timestamp : Use specific timestamp (YYYYMMDDhhmmss format) for output filenames instead of current time How to capture a list of shows available in your region, and compare over time: Step 1: Retrieve credentials Provide credentials in crdl.conf. 1. Browse to https://www.crunchyroll.com/, log in and select the desired user if needed 2. Enter Firefox Inspector (Tools -> Browser Tools -> Web Developer Tools), select the 'Network' tab (or equivalent in Chrome) 3. Reload 4. Under 'Network' tab in inspector, look for any transfers returning JSON, e.g., the 'me' script (filter by XHR), click on it 5. Right-Click on it, then select "Copy Value" and "Copy Request Headers" 6. Paste text into the config file 'crdl.conf' and save it Note: These credentials are only good for a few minutes, follow quickly with the next step. Step 2: Capture lists and compare against the previous capture (if any) On the command line, call the update script to capture a new snapshot and compare it to the previous one: ./cr_update.sh If no previous capture exists, the script will quit with a message and not create a comparison. The changes are noted in a text file with the current timestamp and the ending '.changes.txt'. The format is explained below, with examples. Take a look with e.g.: less cr_data_browse_`cat timestamp.txt`.changes.txt Note: The update script also captures the personal watchlist, and creates a changes file as well (see below) Repeat these steps every time you want to check what has changed since the previous check. I recommend to do this once a day or once a week. How to interpret the changes file The file ending in .changes.txt that is generated by the update script contains three sections: "Removed", "Added", and "Changed". Above that, the time stamps of the previous and latest files are noted (in your local time). The changes in the last section are in the form of diff lines, noted with a '-' line showing the previous, followed by a '+' line showing the latest. Each entry has an "Added" element, showing the timestamp (in UTC, ISO format) of the change or when it had been added. Here are some examples - one removed movie, one (re-)added show, and one seasonal show with a new episode: Removed: TALES OF CRESTORIA -THE WAKE OF SIN- (2020) - 1 Sn. / 1 Ep. - Added: 2020-10-18T11:00:00.000Z Added: 86 EIGHTY-SIX (2021) - 1 Sn. / 26 Ep. - Added: 2026-08-13T15:00:00.000Z Changed: -A Livid Lady's Guide to Getting Even: How I Crushed My Homeland with My Mighty Grimoires (2026) - 1 Sn. / 5 Ep. - Added: 2026-08-03T14:30:00.000Z +A Livid Lady's Guide to Getting Even: How I Crushed My Homeland with My Mighty Grimoires (2026) - 1 Sn. / 6 Ep. - Added: 2026-08-10T14:30:00.000Z Sometimes the timestamp can be in the future, which is (tentatively) when the next episode will be added. This is an example captured a short time before 2026-08-23T16:45:00.000Z: -Anime AzurLane: Slow Ahead! (2021) - 2 Sn. / 19 Ep. - Added: 2026-08-16T16:45:00.000Z +Anime AzurLane: Slow Ahead! (2021) - 2 Sn. / 19 Ep. - Added: 2026-08-23T16:45:00.000Z How to capture your personal watchlist (This is also done by the update script, along with the browse list) Step 1: Log in and provide credentials in config file (see previous Step 1, above) Step 2: Capture the watchlist: ./crdl.pl watchlist -json Now you have your current watchlist, including an indication which episode is next, and ordered by latest activity, in a text file. Take a look: less cr_data_watchlist_`cat timestamp.txt`.txt Comparing: For comparison against previous lists, the update script creates a "changes" file, similar to that of the browse list. This one shows your personal progress of each show in your watchlist, and also notifies you of shows you or crunchyroll have removed or added (If crunchyroll re-adds a show they had previously removed, and which you had in your watchlist, it will re-appear in your watchlist automatically.) For example, if a new episode is added, after you have watched all previous episodes, the change in the diff looks like this: -You and I Are Polar Opposites (2026) - 16 Ep. - Done +You and I Are Polar Opposites (2026) - 17 Ep. - Next: S2E5 While watching an episode, the current playback position is noted: -Train to the End of the World (2024) - 13 Ep. - Next: S1E7 +Train to the End of the World (2024) - 13 Ep. - Continue: S1E7 @ 0:03:52 Then, after fully watching a newly added episode, the change in the diff looks like this: -The Frontier Lord Begins with Zero Subjects (2026) - 5 Ep. - Next: S1E5 +The Frontier Lord Begins with Zero Subjects (2026) - 5 Ep. - Done For a show in your watchlist that you haven't started yet, newly added episodes will look like this: -Welcome to Demon School! Iruma-kun (2019) - 82 Ep. - Start Watching +Welcome to Demon School! Iruma-kun (2019) - 83 Ep. - Start Watching How to re-parse and re-compare earlier captures Re-create, e.g., cr_data_watchlist_20260731142318.txt from cr_data_watchlist_20260731142318.json: ./crdl.pl -i cr_data_watchlist_20260731142318.json Re-create, e.g., cr_data_browse_20260801121016.txt from cr_data_browse_20260801121016.json: ./crdl.pl -i cr_data_browse_20260801121016.json To compare arbitrary captures, e.g., after re-creating the text files from JSON, update the 'previous' and 'latest' timestamps, e.g.: echo '20260801121016' > latest.txt echo '20260731134542' > previous.txt or leave the timestamps as they are to re-do the most recent comparison, then run: ./cr_update.sh diff Version history: Version 0.6, 2026-09-18: Cleanup, also creating a watchlist diff, improve regional language support Version 0.5, 2026-08-25: Adding languages (sub and/or dub) in browse list Version 0.4, 2026-08-20: Add parsing of JSON captures Version 0.3, 2026-08-02: Cleanup and improvements Version 0.2, 2026-07-31: First version with automatic download of full alphabetical list and watchlist, with script to diff browse lists Version 0.1, 2026-07-08: Initial script to parse manually extracted JSON files