NON-COMMERCIAL USE ONLY
Subtitle-Downloader supports downloading subtitles from multiple streaming services, such as Apple TV+, CatchPlay, Crunchyroll, Disney+, FridayVideo, HBO GO Asia, iQIYI, iTunes, KKTV, LINE TV, meWATCH, MyVideo, NowE, NowPlayer, Viki, Viu, WeTV, YouTube, etc.
Subtitle-Downloader is a command-line program to download subtitles from the most popular streaming platform. It requires Python 3.10+, and NodeJS. It should work on Linux, on Windows, or macOS. This project is only for personal research and language learning.
- Linux, macOS:
pip install -r requirements.txt
- Windows: Execute
install_requirements.bat
Name | Authentication | Geo-blocking |
---|---|---|
Apple TV+ | Cookies | |
CatchPlay | Cookies | Indonesia, Singapore, and Taiwan |
Crunchyroll | Cookies | |
Disney+ | Email & Password | |
Friday Video | Cookies | Taiwan |
HBO GO Asia | Email & Password | |
iQIYI (iq.com) | Cookies | Partial region |
iTunes | ||
KKTV | ||
LINE TV | ||
MeWATCH | Profile Token | Singapore |
MyVideo | Cookies | Taiwan |
NowE | Cookies | |
Now Player | Cookies | |
Viki | Cookies | Partial region |
Viu | ||
WeTV | Cookies | Partial region |
YouTube | Cookies (Subscribe channel) |
- Install Chrome plugin: get-cookiestxt-locally
- Login to the streaming service, and use the plugin to download cookies.txt (Don't modify anything even the file name)
- Put cookie.txt into
Subtitle-Downloader/cookies
- Fill your email and password in
Subtitle-Downloader/user_config.toml
Online (Colab environment is in the US, if you want to use it in another region please execute it locally)
- Save a copy in Drive
- Connect Colab
- Install the requirements (Click 1st play button)
- Depend the download platform and modify the text field (Click the play button next to it when modified completely)
- Download the subtitles from the left-side menu
-
Depending on the download platform and modify
Subtitle-Downloader/user_config.toml
[subtitles] default-language = 'en' # all/en/zh-Hant/zh-Hans/zh-HK/ja/ko default-format = '.srt' # .srt/.ass archive = true # true/false [headers] User-Agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36' [credentials.DisneyPlus] email = '' password = '' [proxies] us = 'http:127.0.0.1:7890' # Clash [nordvpn] username = '' password = ''
-
Follow each platform's requirements and put cookies.txt into
Subtitle-Downloader/cookies
-
Execute the program with the command line or
Subtitle-Downloader.bat
(Paste the title's URL)python subtitle_downloader.py URL [OPTIONS]
-h, --help show this help message and exit
-s --season download season [0-9]
-e --episode download episode [0-9]
-l, --last-episode download last episode
-o, --output output directory
-slang, --subtitle-language languages of subtitles; use commas to separate multiple languages
default: Traditional Chinese
all: download all available languages
-alang, --audio-language languages of audio-tracks; use commas to separate multiple languages
-sf, --subtitle-format subtitles format: .srt or .ass
-locale, --locale interface language
-p, --proxy proxy
-d, --debug enable debug logging
-v, --version app's version
Disney+
Codec | Language |
---|---|
en | English [CC] |
zh-Hant | Chinese (Traditional) |
zh-Hans | Chinese (Simplified) |
zh-HK | Cantonese |
da | Dansk |
de | Deutsch |
de-forced | Deutsch [forced] |
es-ES | Español |
es-ES-forced | Español [forced] |
es-419 | Español (Latinoamericano) |
es-419-forced | Español (Latinoamericano) [forced] |
fr-FR | Français |
fr-FR-forced | Français [forced] |
fr-CA | Français (Canadien) |
fr-CA-forced | Français (Canadien) [forced] |
it | Italiano |
it-forced | Italiano [forced] |
ja | Japanese |
ja-forced | Japanese [forced] |
ko | Korean |
ko-forced | Korean [forced] |
nl | Nederlands |
no | Norsk |
pl | Polski |
pl-forced | Polski [forced] |
pt-PT | Português |
pt-BR | Português (Brasil) |
pt-BR-forced | Português (Brasil) [forced] |
fi | Suomi |
sv | Svenska |
HBO GO Asia
Codec | Language |
---|---|
en | English |
zh-Hant | Traditional Chinese |
zh-Hans | Simplified Chinese |
ms | Malay |
th | Thai |
id | Indonesian |
iQIYI iq.com
Codec | Language |
---|---|
en | English |
zh-Hant | Traditional Chinese |
zh-Hans | Simplified Chinese |
ms | Malay |
vi | Vietnamese |
th | Thai |
id | Indonesian |
es | Spanish |
ko | Korean |
ar | Arabic |
Viu
Codec | Language |
---|---|
en | English |
zh-Hant | Traditional Chinese |
zh-Hans | Simplified Chinese |
ms | Malay |
th | Thai |
id | Indonesian |
my | Burmese |
WeTV
Codec | Language |
---|---|
en | English |
zh-Hant | Traditional Chinese |
zh-Hans | Simplified Chinese |
ms | |
th | Thai |
id | Indonesian |
pt | Português |
es | Spanish |
ko | Korean |
- Login to meWATCH on the browser.
- Select a movie or series you want to download
- Open the
devtools
in the browser (Windows: Ctrl + Shift + I or F12; macOS: ⌘ + ⌥ + I.) - Refresh the page and select
Network
ondevtools
- Type
https://www.mewatch.sg/api/account/profile
in the filter to find the profile api - Copy profile token (X-Authorization) from profile API Request Headers (Do not include
Bearer
, the profile token starts witheyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ
) and paste inSubtitle-Downloader/user_config.toml ([credentials.meWATCH] profile_token='')
.
- Copy the user-agent from login browser https://www.whatsmyua.info/ and paste it in
Subtitle-Downloader/user_config.toml (User-Agent)
. The user-agent must be the same as login browser user-agent.
- Download all seasons and all episodes
python subtitle_downloader.py URL
- Download season 1 episode 1
python subtitle_downloader.py URL -s 1 -e 1
- Download season 1 episode 1's subtitle with all languages
python subtitle_downloader.py URL -s 1 -e 1 -slang all
- Download all episode subtitles in all languages: en, zh-Hant
python subtitle_downloader.py https://www.disneyplus.com/series/loki/6pARMvILBGzF -slang en,zh-Hant
- Download the latest episode
python subtitle_downloader.py URL -l
- Download season 1 episode 1-10
python subtitle_downloader.py URL -s 1 -e 1-10
- Download season 1 episode 1,3,5
python subtitle_downloader.py URL -s 1 -e 1,3,5
- Download season 1 episodes with NordVPN (region=tw)
python subtitle_downloader.py URL -s 1 -p tw
- Download season 1 episodes with proxy (Clash)
python subtitle_downloader.py URL -s 1 -p http:127.0.0.1:7890
- Download season 1 episodes with .ass format subtitle
python subtitle_downloader.py URL -s 1 -sf .ass
- Few streaming services have Geo-blocking, make sure you are in the same region or use a proxy to bypass restrictions.
- Disney+ doesn't support VPN.
- Viki has API protection, don't call API too often. (Only catch 100% completed subtitles)
- Any issue during downloading subtitles, upload the screenshot and log file (Please provide title, platform, and region).
- Make sure the video contains embedded subtitles (subtitles able to turn on and off) and it is playable in your region.
- Please ⭐️ this repository if this project helped you!
- Contributions of any kind are welcome!
- Netflix: Netflix subtitle downloader
- Amazon (Prime Video): Amazon subtitle downloader