• AnyStream is having some DRM issues currently, Netflix is not available in HD for the time being.
    Situations like this will always happen with AnyStream: streaming providers are continuously improving their countermeasures while we try to catch up, it's an ongoing cat-and-mouse game. Please be patient and don't flood our support or forum with requests, we are working on it 24/7 to get it resolved. Thank you.

Discussion How to download Crunchyroll and what you need...

example SHIMONETA: A Boring World... on windows it should strip the : char and replace with - because you cant have \ / : * ? " < > | in the filename. instead it makes a nonstandard char : and ? for all episodes that contain the chars. i dont get the char you describe above. i dont know if its the video that has the special char names or if during making the name it gives it the new : char. i dont want to use the --restrict-filenames as it just removes all formatting and makes everything !a-z0-9 an "_" char. is there a way i can say replace :? and other chars with _ or blank? i was just wondering if this can be done. if not i can rename them and live with it.
i want to say this works awesome and thanks for all you guys do.
 
Last edited:
Ok, then try
Code:
--windows-filenames
instead of --restrict-filenames
Or have a look at the yt-dlp documentation
Code:
https://github.com/yt-dlp/yt-dlp
 
I'm not aware of any other command, than the two mentioned above, each with its own drawbacks.

And usually FileBot will be able to rename properly without the : in the name.
As it does a check or at least it did not sure about its latest versions.

You can also create a help file on your machine open a command line window in the folder where yt-dlp is located and execute
Code:
yt-dlp.exe --help > help.txt
That should create a help.txt in the same folder as the yt-dlp, with all the commands.
 
thanks guys, ill try the --windows-filenames and see how that goes.
thanks all for help, i tried to read the docs but i was overwhelmed by the sheer number of options, i didnt know where to begin. its going to take me some time to pour over the doc.
again thanks all
 
yt-dlp.exe --help > help.txt
I know of help, I also know that you can print the directory list to a txt, but I never thought that you could print the output of help to a txt as well!
 
Update:

I was informed that the internal downloader of yt-dlp might have problems with some users, such as very slow downloads.

It is possible to use an external downloader such as ffmpeg, if everything is setup as per initial posts there is no need to download it. Another downloader that is supported is aria2c, which need to be downloaded and the .exe need to be put into the same directory as the yt-dlp.exe
Download for aria2c
Code:
https://github.com/aria2/aria2/releases/tag/release-1.36.0


To activate the external downloaders please add the following at the end of the config.txt

Code:
#External downloader
#--downloader aria2c
#--downloader ffmpeg

Please remove the # in front of the downloader you want to use.
NOTE: Only activate one downloader.

Once added and adjusted it will use the relevant external downloader for downloads.
 
Info

This is an info for everyone that ask about multi-audio.

Kindly note, that while yt-dlp is able to download multi-audio it needs to be supported by the relevant service.
This seems not to be the case for Crunchyroll, apparently each language has its own video+audio and download of only audio seems not possible here.
If you need more than one audio it is necessary to download the video+audio for all the languages you want.
However, please be aware that it might be possible that audio is out of sync if muxed from another video+audio.
 
Important Information:

If you are using Chrome and you get an error message that looks similar to the one below when you try to download, please log in to the service, close Chrome, and rerun the download.
This seems to be a "security feature" of Chrome in the latest version that blocks access to some regions of Chrome-related info as long as Chrome is running.

Code:
[Cookies] Extracting cookies from chrome
Traceback (most recent call last):
xxx
xxx
xxx
xxx
PermissionError: [Errno 13] Permission denied:
 
Critical Information and update!
Please read carefully.


Code:
It seems that Crunchyroll is rolling out a new security feature.
When you get Error 403 forbidden, it means it is already active.

How to continue downloading?
1. Switch to Firefox as this will make it easier compared to Chrome.

2. Open Firefox and login to Crunchyroll.

3. Open a new tab in Firefox and use your preferred search engine, search for:
"what is my user-agent" without the "", copy the complete information from the result.

4. Open the config.txt and
 a. replace:
 #The name of the browser to load cookies from.
 --cookies-from-browser chrome

 with: --cookies-from-browser firefox

b. additionally addon a new line:
#User Agent
--user-agent "MY_USER_AGENT"
Please replace the content in between " " with the information from the search result above.
Kindly note that you need to keep the " ".

5. Open the menu batch file and replace all words that are chrome with firefox and save it.

6. Once everything has been changed, start downloading.
If error message 403 pops up you need to open a video in Firefox and play it.


Why are these changes necessary?
It seems that Crunchyroll changed the "validity" or "lifetime" of cookies to roughly 30 minutes.
Therefore it is no longer possible to download many episodes at once.
And the user needs to open a new video after 30 minutes to refresh the cookies and get another 30 minutes.
Unfortunately, this is only possible via browser as yt-dlp can not do that.

Why do I need to add the user agent?
Crunchyroll will now check if there is a user agent to validate the login.

Why change to Firefox instead of Chrome?
As mentioned in one of the previous updates Chrome is now no longer allowing access to certain things when its open.
This will be a pain in the neck when every 30 minutes need to load a video and open and close chrome.

Can I play video while downloading?
Please note that it is not recommended to play other videos while downloading, as it seems that the cookies will be updated each time a new video is started.
Therefore please only download or play video in the browser but not both at the same time.
 
Please find below the updated menu as well as the updated config.

As always, copy 1:1 and only change necessary.

Code:
Please update --user-agent "MY_USER_AGENT" in the menu and config accordingly to your user agent.
Open a new tab in Firefox and use your preferred search engine, search for:
"what is my user-agent" without the "", copy the complete information from the result.
Please replace the content in between " " with the information from the search result above.
Kindly note that you need to keep the " ".


Updated menu
- Inserted PAUSE after download or most of the tasks. You need to hit a button to complete it and return to the menu. In case you need to copy the verbose output.
- Changed the word chrome to firefox to adjust for the latest update of Crunchyroll.

Code:
ECHO OFF

CLS

:MENU

ECHO.

ECHO ...............................................

ECHO Download Crunchyroll

ECHO ...............................................

ECHO.

ECHO 1 - Download via URL

ECHO 2 - Download via BATCH file

ECHO 3 - Check available Subtitle Languages

ECHO 4 - Check update for YT-DLP

ECHO 5 - Check YT-DLP version on your system and current version available online

ECHO 6 - Clear the YT-DLP cache folder

ECHO 7 - EXIT

ECHO.

SET /P M=Type 1, 2, 3, 4, 5, 6 or 7 then press ENTER:

IF %M%==1 GOTO URL

IF %M%==2 GOTO BATCH

IF %M%==3 GOTO SUBTITLE

IF %M%==4 GOTO UPDATE

IF %M%==5 GOTO VERSION

IF %M%==6 GOTO CLEAR

IF %M%==7 GOTO EOF

ECHO.

ECHO %M% is not a valid input.

GOTO MENU

:URL

CLS

ECHO ...............................................

ECHO Download via URL

ECHO ...............................................

ECHO.

SET /P URL="[Enter the video URL of the video to download] "

yt-dlp.exe --config-locations "config.txt" "%URL%"

ECHO ...............................................

ECHO Done.

PAUSE

CLS

GOTO MENU

:BATCH

CLS

ECHO ...............................................

ECHO Download via BATCH file

ECHO ...............................................

ECHO.

@echo off

CLS

setlocal enabledelayedexpansion

:input

set count=100

for /f "delims=" %%a in ('dir /b batch') do (

  set /a count+=1

  echo !count:~-2!] %%a

)

set /a countMax=count-100

set "countNr=%count:~-2%"

ECHO.

<nul set /p "=Enter the number of the batch file to use: (01...%countNr%, 00 for Menu): "

choice /c 1234567890 /n >nul

set first=%errorlevel:~-1%

<nul set /p "=%first%"

choice /c 1234567890 /n >nul

echo %errorlevel:~-1%

set ch=%first%%errorlevel:~-1%

REM echo that was %ch%

set /a line=1%ch%-101

if "%ch%" == "00" goto escape

if %ch% gtr %countMax% echo bad input&goto :input

for /f "delims=" %%a in ('dir /b batch^|more +%line%') do set "file=%%a"&goto :cont

:cont

ECHO.

echo You selected: %ch% - %file%

ECHO.

echo Task started for batch file: %file%.

ECHO.

yt-dlp.exe --config-locations "config.txt" --batch-file "batch\%file%"

PAUSE

CLS

GOTO MENU

:escape

echo you choose '00' for exit.

GOTO MENU

:UPDATE

CLS

ECHO ...............................................

ECHO Check update for YT-DLP

ECHO ...............................................

ECHO.

yt-dlp.exe --update-to nightly

PAUSE

CLS

GOTO MENU

:SUBTITLE

CLS

ECHO ...............................................

ECHO Check available Subtitle Languages

ECHO ...............................................

ECHO.

SET /P URL="[Enter the video URL to check available subtitle languages] "

yt-dlp.exe --verbose --no-check-certificate --no-geo-bypass --list-subs --user-agent "MY_USER_AGENT" --cookies-from-browser firefox "%URL%"

ECHO ...............................................

ECHO Done.

PAUSE

CLS

GOTO MENU

:VERSION

CLS

ECHO ...............................................

ECHO Check YT-DLP version on your system

ECHO and current version available online

ECHO ...............................................

ECHO.

yt-dlp.exe --update

PAUSE

CLS

GOTO MENU

:CLEAR

CLS

ECHO ...............................................

ECHO Clear the YT-DLP cache folder

ECHO ...............................................

ECHO.

yt-dlp.exe  --rm-cache-dir

PAUSE

CLS

GOTO MENU



Updated config.txt
Implemented all previous minor updates and the latest changes


Code:
#Location of the ffmpeg binary
--ffmpeg-location "ffmpeg"

# Print various debugging information
#--verbose

#Suppress HTTPS certificate validation
--no-check-certificate

#Do not bypass geographic restriction via faking X-Forwarded-For HTTP header. Do not bypass geographic restriction via faking X-Forwarded-For HTTP header
--no-geo-bypass

#Write subtitle file
--write-subs

#Languages of the subtitles to download (can be regex) or "all" separated by commas, e.g.
#--sub-langs "en.*,ja". You can prefix the language code with a "-" to exclude it from
#the requested languages, e.g. --sub-langs all,-live_chat. Use --list-subs for a list of available language tags
--sub-langs en-US

#Limit the filename length (excluding extension) to the specified number of characters
--trim-filenames 150

#Write video description to a .description file
--write-description

#Subtitle format; accepts formats preference, e.g. "srt" or "ass/srt/best"
--sub-format ass

#Number of fragments of a dash/hlsnative video that should be downloaded concurrently (default is 1)
-N 5

#Maximum download rate in bytes per second
--limit-rate 3.2M

#Video format code
-f "b"

#The paths where the files should be downloaded.
-P "downloads"

#Output filename template
-o "%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s"

#The name of the browser to load cookies from.
--cookies-from-browser firefox

#User Agent
#Open a new tab in Firefox and use your preferred search engine, search for:
#"what is my user-agent" without the "", copy the complete information from the result, and replace MY_USER_AGENT but don't remove the " ".
--user-agent "MY_USER_AGENT"


#Containers that may be used when merging formats, separated by "/", e.g. "mp4/mkv".
#Ignored if no merge is required. (currently
#supported: avi, flv, mkv, mov, mp4, webm)
#--merge-output-format MKV
#Remux the video into another container if necessary
--remux-video mkv

#Embed subtitles in the video (only for mp4, webm and mkv videos)
--embed-subs

#default subtitle
--ppa "EmbedSubtitle:-disposition:s:0 default"

#Embed metadata to the video file. Also embeds chapters/infojson if present unless
#--no-embed-chapters/--no-embed-info-json are used (Alias: --add-metadata)
--embed-metadata

#Do not set any "purl" in the video metadata
--parse-metadata ":(?P<meta_purl>)"

#Do not set any "comment" in the video metadata
--parse-metadata ":(?P<meta_comment>)"

#Do not set any "description" in the video metadata
--parse-metadata ":(?P<meta_description>)"

#Do not set any "title" in the video metadata
--parse-metadata ":(?P<meta_title>)"

#Do not set any "episode_id" in the video metadata
--parse-metadata ":(?P<meta_episode_id>)"

#Do not set any "date" in the video metadata
--parse-metadata ":(?P<meta_date>)"

#Do not set any "season_number" in the video metadata
--parse-metadata ":(?P<meta_season_number>)"

#Do not set any "episode_sort" in the video metadata
--parse-metadata ":(?P<meta_episode_sort>)"

#Do not embed the infojson as an attachment to the video file
--no-embed-info-json

#Do not retrieve video comments unless the extraction is known to be quick
--no-write-comments

#Do not embed chapters/--no-embed-info-json
--no-embed-chapters

#Keep the intermediate video file on disk after post-processing
#--keep-video

#External downloader
#Remove the hash symbol of the downloader you want to activate
#--downloader aria2c
#--downloader ffmpeg
 
Last edited:
Critical Information!

Code:
 Kindly note that the cookies and the browser need to match, or else it won't work.
What does that mean?

1. For example, if you use cookies from Edge you can't use Firefox information as a user agent,
this will result in an error 403.

2. It is necessary to provide the complete user agent information.
If you only provide firefox in the user agent info it will result in an error 403.

3. When the browser updates, the user agent information needs to be updated too, else it
will result in an error 403.
 
If it's alright, I would also like to suggest the (free and open source) tool I made to download crunchyroll/hidive/funimation (simplifies a lot of things vs using the suggested method of yt-dlp, especially with what crunchyroll is rolling out)
 
Last edited:
I do not think it is appropriate to hijack other people's threads to advertise a tool.
This is the third-party software part of the forum, but still.
 
I do not think it is appropriate to hijack other people's threads to advertise a tool.
This is the third-party software part of the forum, but still.
You're right, I should have posed the question before posting the link, I've edited the post to remove the link
 
You're right, I should have posed the question before posting the link, I've edited the post to remove the link
It should be ok to open your own thread, as long as you keep it in the third party forum. Exception is if someone asks in the AS forum if they can add Crunchy, like it happened recently. Then you can post a link to this and your thread.
 
If it's alright, I would also like to suggest the (free and open source) tool I made to download crunchyroll/hidive/funimation (simplifies a lot of things vs using the suggested method of yt-dlp, especially with what crunchyroll is rolling out)
As long as it's your tool that you are sharing with the community and not something that you are selling it's fine in the third-party forum, where tectpros tool is located.
 
Important Information


An excessively high download speed could potentially cause problems; it appears necessary to reiterate this point.
Recent updates have implemented stricter measures, indicating that an overly fast download speed may now trigger errors more frequently.
 
Back
Top