Download TikTok videos, photo/slideshow posts, and whole accounts — with real Slideshow-to-Video support.
TikTok slideshow posts (the ones made of photos instead of a video) don't
work with normal downloaders, since TikTok doesn't actually store them as a
video file at all. TokDown handles those properly: it fetches the real
images and audio, then stitches them into an MP4 for you automatically —
or, if you'd rather have the raw images and audio track separately, one
checkbox switches to that instead.
- Videos — paste a single video link, or a whole profile/account URL and every video on it gets queued up automatically.
- Photo/slideshow posts — fetched properly (not just downloaded as an audio file, which is what most tools do) and stitched into a slideshow video with the original background audio.
- "Image(s) Only?" mode — skip the video stitching and just save the raw images + audio track instead.
- Remembers your last download folder between launches.
- Keeps a log of everything, plus a separate error log you can attach to a bug report if something goes wrong.
- Python 3.10+
- ffmpeg — only needed for the default "stitch into a video" mode. Without it, slideshow posts still work, they just save as raw images + audio instead of a video.
- Everything else (yt-dlp, the browser TokDown uses for slideshow posts, etc.) gets installed automatically by the setup script below — you don't need to install these yourself.
-
Install Python, if you don't already have it: python.org/downloads
Important: on the first screen of the installer, tick the box that says "Add python.exe to PATH" before clicking Install. It's easy to miss and it's off by default on some versions — if you skip it, the setup script below won't be able to find Python.
(If you already installed Python without checking that box, you don't need to reinstall — just re-run the installer, choose "Modify", and enable it from there.)
-
Download this project (green "Code" button → "Download ZIP" if you're not using git) and unzip it somewhere.
-
Double-click
setup_windows.bat. A black terminal window opens and does everything for you — creates a private Python environment for TokDown, installs what it needs, and downloads the browser component used for slideshow posts. This takes a few minutes and needs an internet connection. When it says "Setup complete!", you're done — press any key to close the window. -
Install ffmpeg (optional, but recommended — see Requirements above):
winget install ffmpegRun that from a terminal (PowerShell or Command Prompt). If you don't have
winget, it comes with modern Windows by default — search "App Installer" in the Start menu and update it if the command isn't found.After installing, close and reopen any terminal windows (or just restart your PC) before running TokDown — Windows won't recognize the new ffmpeg install in a window that was already open.
-
Run TokDown by double-clicking
TokDown.py. If double-clicking it doesn't open the app (some Windows setups don't have.pyfiles associated with Python), open a terminal in the TokDown folder instead and run:TokDown_Venv\Scripts\python.exe TokDown.py
-
Make sure Python 3 is installed (macOS and most Linux distros already have it — check with
python3 --versionin a terminal). -
Download or clone this project, open a terminal in that folder, and run:
bash setup.shThis creates a private Python environment for TokDown, installs what it needs, and downloads the browser component used for slideshow posts. Takes a few minutes.
-
Install ffmpeg (optional, but recommended — see Requirements above):
# macOS brew install ffmpeg # Debian/Ubuntu sudo apt install ffmpeg # Fedora sudo dnf install ffmpeg # Arch sudo pacman -S ffmpeg -
Run TokDown:
./TokDown.py
-
Paste links into the box at the top — one per line. You can mix:
- a single video link
- a single photo/slideshow post link
- a full profile/account link (every post on that account gets queued)
Tip: paste one link, and the cursor automatically drops to a new blank line — you can just paste the next one right away without pressing Enter in between.
-
Choose where downloads go with the Output field and Browse button. Defaults to a
TikToksfolder next to the app, and whatever you pick is remembered for next time. -
"Image(s) Only?" — leave this unchecked (the default) to get slideshow posts as a proper stitched MP4 video. Check it if you'd rather have the raw images and audio track saved separately instead, with no video created.
-
Click Download. Progress and status show up in the Download Log at the bottom as it goes. Stop cancels the current run.
Everything downloaded is organized into a subfolder per account. In the default stitching mode, a slideshow post's finished video is all you'll see there — the raw images used to build it are cleaned up automatically once it's done. With "Image(s) Only?" checked (or if ffmpeg isn't installed), you'll instead find a subfolder with the individual images and audio track.
"Missing 'curl-cffi'" / "Missing 'camoufox'" / "Missing 'ffmpeg'"
Setup didn't finish, or ffmpeg wasn't installed separately (see Setup
above). Re-run setup.bat / setup.sh — it's safe to run again, it
won't redo work that's already done.
A specific post keeps failing, or slideshow posts won't fetch at all
TikTok occasionally shows a CAPTCHA challenge to automated tools if
they're used very heavily in a short time on the same account — this is
TikTok's own anti-bot system, not a bug. TokDown already keeps a
consistent browser identity between runs specifically to avoid this, so
it should be rare; if it happens, waiting a while before retrying that
account usually resolves it. Posts that couldn't be fetched are listed in
tokdown_failed_links.txt / tokdown_skipped_slideshows.txt in your
output folder so you can retry just those later.
Windows: setup.bat says it can't find Python
See the "Add python.exe to PATH" note in the Windows setup steps above —
that's almost always the cause.
Windows: installed ffmpeg but TokDown still says it's missing Close and reopen the terminal / restart TokDown (or your PC) — see the ffmpeg note in the Windows setup steps above.
Something else went wrong / reporting a bug
Check TokDown_error_log.txt, created next to the app and reset fresh
every time you launch it. It captures every error TokDown hits, plus the
full details of any crash. If you're filing a GitHub issue, attach this
file as-is — it's the fastest way to get a problem diagnosed without back
and forth.
TokDown_Venv/andTokDown_Profile/are created automatically and shouldn't be committed if you fork this — they're local environment and browser-profile data, not part of the app itself.TokDown_Profile/in particular holds real browser session data used to avoid the CAPTCHA issue mentioned above — don't share it.