~savoy/tiktok-dl

TikTok scraper and download management
dev: coverage testing & README badges
README updated pointing to new mailing lists
cleanup: updated README link to mailing list

clone

read-only
https://git.sr.ht/~savoy/tiktok-dl
read/write
git@git.sr.ht:~savoy/tiktok-dl

You can also use your local clone with git send-email.

#About

TikTok scraper and download management.

This software relies on a server to plug into the TikTok API and pull the required JSON data.

tiktok-dl is an easy way to download and keep track of the content of multiple TikTok accounts through the command line.

#Installation

Clone this repository or download the latest tarball and extract. This repo uses poetry to make management easy.

cd tiktok-dl-<version>/
poetry install

#Usage

By either selecting account names with the --users flag or recording them in the configuration file, running this program will pull any video that has yet to be saved locally. tiktok-dl leverages yt-dlp for the actual downloading.

With the default config (shown below), a working server at the given address, and implying there's only one video to download:

$ tiktok-dl.py -u liverpoolfc

liverpoolfc: 1 pending downloads...

liverpoolfc
-----------
Newly downloaded: 1
Total downloaded: 1
Errors: 0

#Config

The default configuration will save as ~/.config/tiktok_dl/config.toml. The options users, blacklist, and ytdlp_options.paths.home are required (the two former with at least empty lists), with the latter having the additional feature of expanding {user} with the user name of the account currently downloading.

Nearly all yt-dlp options are available and can be seen (hopefully correctly typed from the original source code dynamic dict) here.

server = "127.0.0.1"
port = 1337
users = []
blacklist = []

[ytdlp_options]
format = "bestvideo+bestaudio/best"
socket_timeout = 2

[ytdlp_options.paths]
home = "downloads/{user}"

#Roadmap

To-be-included features can be seen through the current open issues.

#Support

Refer to the announcement mailing list for project updates and the devel mailing list for contributions and collaboration.

Issues should be directed to the project issue tracker.

#License

This project is licensed under the GPLv3.