How to Download Anime episodes from PlayerJS using only your terminal
No torrents, no browser extensions — just yt-dlp and a few minutes in devtools. This takes under 5 minutes to watch your fav episode…
How to Download Anime episodes from PlayerJS using only your terminal
No torrents, no browser extensions — just yt-dlp and a few minutes in devtools. This takes under 5 minutes to watch your fav episode offline.
*This guide assumes basic familiarity with a terminal, but no prior streaming or video knowledge.
Introduction
Recently I started having internet outages, and at some point my connection became so unstable that streaming stopped being an option. That turned into a problem for one very specific part of my routine — my free-time anime.
So I decided to download the episodes and watch them offline. I didn’t want to deal with torrents, and I also didn’t want to hunt for “official” downloads that may not exist. Instead, I tried to save the video directly from the same website where I usually watch it.

A typical web anime setup looks like this: episode buttons, quality selector, and a custom UI that replaces the browser’s native video controls.
After a bit of digging, I realized the site was using Player.js. You don’t need to install or configure it — you just need to recognize it.

Try to right-click on video
Below is my step-by-step walkthrough how to download all this stuff.
Step 1: Check if the video file is directly accessible
- Open the page with the PlayerJS video
- Right-click → Inspect (Cmd + Option + I on macOS)

- Open the Network tab
- Play the video to receive the url
- Look for:
.m3u8

Browser DevTools: Network tab
If you see an .mp4/ .webm
- Open the file URL in a new tab
- Right-click → Save Video As
Step 2. Download the video with yt-dlp
An .m3u8 file is not a video. That’s why you can’t just “Save Video As” in this case. It’s a small UTF-8 playlist used in HTTP Live Streaming (HLS).
1 — Intall via brew (macOS)
If you’re on macOS and use Homebrew, install yt-dlp with one command:
brew install yt-dlp
This installs yt-dlp globally.
Installation may take a minute — Homebrew pulls a few dependencies.

Installation process
Once it finishes, you should be able to run yt-dlp from any terminal window.
2 — Download your video
Pass the url to our util:
yt-dlp "https://example.com/playlist.m3u8"
yt-dlp will download all segments and save a single .mp4 file in your current folder.

Installation process
Bonus: Script for downloading multiple episodes
This is optional — if you’re downloading many episodes from the same site.
Replace each line in urls with the corresponding link from DevTools. Change starting episode start_ep if you are downloading from other number.
Change "custom_name_s01e" with your name you want you save as.
urls=(
URL_FOR_E07=/index.m3u8
URL_FOR_E08=/index.m3u8
URL_FOR_E09=/index.m3u8
URL_FOR_E10=/index.m3u8
URL_FOR_E11=/index.m3u8
URL_FOR_E12=/index.m3u8
URL_FOR_E13=/index.m3u8
)
start_ep=7
for idx in "${!urls[@]}"; do
ep=$((start_ep + idx))
printf -v ep2 "%02d" "$ep"
yt-dlp \
-o "custom_name_s01e${ep2}" \
"${urls[$idx]}"
done
To run the script, call sh download_anime.sh

yt-dlp downloading process
While it downloads, you can grab some tea and relax.
After downloading, your folder will look like this:

Downloaded video files
Final thoughts
- Does this work on DRM-protected sites? → No
- Is this legal? → Depends on local law
- Do I need ffmpeg? → Only if this method doesn’t work
PlayerJS may look like a closed system at first glance, but in most cases it’s just a thin layer on top of standard web video technologies like HLS. Once you know where to look — and how to read what your browser is already showing you — downloading videos becomes straightforward.
With a bit of help from yt-dlp, you can turn unstable internet into a non-issue and keep your content available offline, whether it’s anime, lectures, or any long-form video you don’t want to lose access to.
This approach won’t work for every site (DRM is a hard stop), but for a large number of PlayerJS-based players, it’s reliable, fast, and requires nothing more than your terminal and a few minutes of setup.
Hopefully this guide saves you some time — and a few buffering screens.
메타데이터
- post_id
- 8a1c4f40f69e
- slug
- how-to-download-anime-episodes-from-playerjs-using-only-your-terminal-8a1c4f40f69e
- url
- https://medium.com/@oleksiimiro/how-to-download-anime-episodes-from-playerjs-using-only-your-terminal-8a1c4f40f69e
- canonical_url
- https://medium.com/@oleksiimiro/how-to-download-anime-episodes-from-playerjs-using-only-your-terminal-8a1c4f40f69e
- author_url
- https://medium.com/@oleksiimiro
- status
- ok
- fetched_at
- 2026-07-19 13:29:57