Continue disrupted downloads & strip audio tracks (aria2c + mkvtoolnix)
Continue disrupted downloads with aria2c
A browser download doesn’t save a proper “partial file” + “resume metadata” in the way wget
or curl
do. Firefox usually writes to something like file.part
, but that piece alone doesn’t carry the HTTP headers needed for resuming unless the server supports range requests and you know the exact same URL.
So while failed pirate a huge 64G total video on the browser, like with already downloaded 17G, ideally, we can continue that disrupted downloads with aria2c
.
Grab the exact URL
1 2 3
URL='https://your_download_link.mkv' # Test if ranged requests work (good = HTTP/1.1 206 + Content-Range) curl -L -s -D - -o /dev/null -r 0-0 "$URL" | grep -Ei 'HTTP/|Accept-Ranges|Content-Range'
You can resume if you see
206 Partial Content
andContent-Range: bytes 0-0/…
; If you only get200 OK
with noAccept-Ranges
, the server won’t resume and any CLI will restart from 0.Point the downloader at your partial file
Find and rename Firefox’s partial (usually ends with
.part
) to the final name you’ll continue into:1 2 3 4
# Locate and inspect ls -lh # Suppose it's: mv "my_fav_movie_2160p_REMUX.part" "my_fav_movie_2160p_REMUX.mkv"
Keep quotes if your filename has spaces/parentheses. Renaming is optional to make the continue flags nicer.
aria2c
(fast and parallel for giant files)1
aria2c -c -x16 -s16 -k1M -o "my_fav_movie_2160p_REMUX.mkv" "$URL"
-c
continue;-x16 -s16
parallel connections;-k1M
piece size hint.- If you already have the file with that exact name, it will pick up from ~17 GB.
Strip Audio Tracks With mkvtoolnix
Some rips almost always include multiple audio tracks, and they love making the language I don’t understand at all the default. We can strip audio tracks with mkvtoolnix
.
Check tracks with ffprobe / mediainfo
1
ffprobe -hide_banner "my_fav_movie_2160p_REMUX.mkv" | grep -i "Stream #.*Audio"
You’ll see something like:
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default) Stream #0:1(hin): Audio: ac3, 48000 Hz, stereo, fltp, 224 kb/s (default) Stream #0:2(eng): Audio: truehd, 48000 Hz, 7.1, s32 (24 bit) Stream #0:3(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
(Order varies, but one will say
eng
, onehin
.)Force English in VLC / MPV / etc.
- VLC:
Audio → Audio Track → English
Or set default:Tools → Preferences → Audio → Preferred Audio Language → eng
. MPV:
Add this line to your~/.config/mpv/mpv.conf
:1
alang=eng
- Kodi:
Settings → Player → Language → Preferred audio language = English.
- VLC:
Strip Certain track (Optional)
Install the tools (MKVToolNix)
- Ubuntu
1
sudo apt update && sudo apt install mkvtoolnix mkvtoolnix-gui
- Arch
1
sudo pacman -S mkvtoolnix-cli
See exact MKV track IDs (MKVToolNix numbering)
1
mkvmerge -i "my_fav_movie_2160p_REMUX.mkv"
You’ll get something like:
Track ID 0: video (HEVC) Track ID 1: audio (AC-3) [hin] Track ID 2: audio (TrueHD/Atmos) [eng] Track ID 3: audio (AC-3 5.1) [eng]
(Confirm IDs on your file, these IDs are what mkvpropedit/mkvmerge use, not ffprobe’s
#0:1
style. If no langs had been tagged, just refer the output offfprobe
’s before.)Keep both English tracks + make Atmos the default (no re-encode, instant edit)
1 2 3 4 5 6 7 8
# Turn OFF Hindi as default mkvpropedit "my_fav_movie_2160p_REMUX.mkv" \ --edit track:1 --set flag-default=0 # Make English TrueHD/Atmos the default mkvpropedit "my_fav_movie_2160p_REMUX.mkv" \ --edit track:2 --set flag-default=1 --edit track:3 --set flag-default=0
(If your IDs differ, adjust the numbers.)
To remove the Hindi track entirely but keep both English:
1 2 3
mkvmerge -o "my_fav_movie_2160p_EN.mkv" \ -a 2,3 \ "my_fav_movie_2160p_REMUX.mkv"
Check afterwards
1
mkvmerge -i "my_fav_movie_2160p_EN.mkv"
Then:
1
mkvinfo "my_fav_movie_2160p_EN.mkv" | grep -A5 "Track type: audio"
Check Which audio is on right now
mpv, live OSD:
Start mpv with a status line:
1 2
mpv --term-status-msg='aid=${aid} alang=${alang} aname=${audio/codec-name}' \ "my_fav_movie_2160p_REMUX.mkv"
mpv, log file way (very clear):
1 2
mpv --log-file=mpv.log "my_fav_movie_2160p_REMUX.mkv" grep -i 'aid=' mpv.log | tail -n 5
You’ll see lines like
aid=2 alang=eng
when it switches/loads.ffprobe listing (static):
1 2 3 4
ffprobe -v error \ -select_streams a \ -show_entries stream=index,codec_name,channels:stream_tags=language,title \ -of default=nw=1 "my_fav_movie_2160p_REMUX.mkv"
Bonus: Rename the audio tracks (optional)
Rename the audio tracks with custom names:
1
2
3
mkvpropedit "my_fav_movie_2160p_EN.mkv" \
--edit track:1 --set name="English TrueHD Atmos 7.1" \
--edit track:2 --set name="English AC3 5.1 Fallback"
Run mpv with verbose status:
1
mpv --osd-level=3 --term-status-msg='aid=${aid} alang=${alang} aname=${audio}' "my_fav_movie_2160p_EN.mkv"
Now when you press #
(multiple times), mpv will show something like:
1
2
aid=1 alang=eng aname=English TrueHD Atmos 7.1
aid=2 alang=eng aname=English AC3 5.1 Fallback
Check if it has built-in subtitles
If ffprobe
/mkvmerge -i
output only showed video + audio + chapters, no subtitle streams were listed, meaning this particular REMUX did not include subtitle tracks (English subs, SDH, commentary, nothing). Release groups sometimes skip them to shave size, especially on these multi-lang rips.
We want to make sure 100% it doesn’t have subtitles:
1
2
3
4
ffprobe -v error \
-select_streams s \
-show_entries stream=index:stream_tags=language,title \
-of default=nw=1 "my_fav_movie_2160p_EN.mkv"
Or with mkvtoolnix:
1
mkvmerge -i "my_fav_movie_2160p_EN.mkv" | grep -i subtitle
If it prints nothing, then no subtitles are baked in.