~savoy/tiktok-dl

TikTok scraper and download management

f5e31b3 version bump

~savoy pushed to ~savoy/tiktok-dl git

1 year, 7 months ago

90a0b11 added: ignore manual HTML files

~savoy pushed to ~savoy/tiktok-dl git

1 year, 7 months ago

#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.