← Back to list

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…

Oleksii Miroshnyk · 2026-01-14 16:51 · 6 claps · 3.6 min read
#playerjs #anime #videodownload #m3u8 #download-movies
Open on Medium ↗
Wiki topics: 🎬 · Film & Television

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.

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

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

  1. Open the page with the PlayerJS video
  2. Right-click → Inspect (Cmd + Option + I on macOS)

  1. Open the Network tab
  2. Play the video to receive the url
  3. Look for: .m3u8

Browser DevTools: Network tab

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

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

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

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

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