Projeto em Python para extrair informacoes de posts do TikTok (video e album de imagens) via ssstik.io e:
- baixar arquivo (CLI)
- expor uma API HTTP que retorna resumo completo em JSON
- Python 3.10+
pip- Linux (testado apenas em ambiente Linux Ubuntu 24.04 x86_64)
- Este projeto foi testado somente em Linux.
- Ambiente de referencia do teste:
Linux 6.14.0-37-generic #37~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 10:25:38 UTC 2 x86_64 x86_64 x86_64 GNU/Linuxpython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtO Chromium do Playwright e instalado automaticamente na primeira execucao, se necessario.
python3 main.py "https://www.tiktok.com/@user/video/123?is_from_webapp=1&sender_device=pc"Prioridade de download:
Sem marca d'agua->downloads/tiktok.mp4Sem marca d'agua HD->downloads/tiktok_hd.mp4Download this slide(album) ->downloads/tiktok_slide_XX.jpgDownload MP3->downloads/tiktok.mp3
Iniciar servidor:
python3 api.py --host 0.0.0.0 --port 8000Healthcheck:
curl "http://127.0.0.1:8000/health"Extracao (GET):
curl -G "http://127.0.0.1:8000/extract" \
--data-urlencode "url=https://www.tiktok.com/@user/video/123?is_from_webapp=1&sender_device=pc" \
--data-urlencode "timeout_seconds=60"Extracao (POST):
curl -X POST "http://127.0.0.1:8000/extract" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.tiktok.com/@user/video/123?is_from_webapp=1&sender_device=pc","timeout_seconds":60}'Aviso: esta configuracao depende de
systemd(systemctl --user) e so se aplica em sistemas Linux comsystemdativo.
- Copie o unit file para o
systemdde usuario:
mkdir -p ~/.config/systemd/user
cp deploy/systemd/sss-tiktok-api.service ~/.config/systemd/user/- (Opcional) sobrescreva configuracoes em
~/.config/sss-tiktok-api.env:
cat > ~/.config/sss-tiktok-api.env <<'EOF'
PROJECT_DIR=/home/kaiky/Área de trabalho/sss-tiktok
HOST=0.0.0.0
PORT=8000
EOF- Ative e inicie o servico:
systemctl --user daemon-reload
systemctl --user enable --now sss-tiktok-api.service- Comandos uteis:
systemctl --user status sss-tiktok-api.service
systemctl --user restart sss-tiktok-api.service
systemctl --user stop sss-tiktok-api.service
journalctl --user -u sss-tiktok-api.service -f- Para manter rodando mesmo sem login na sessao:
sudo loginctl enable-linger "$USER"Resposta JSON inclui:
- validacao da URL TikTok
- identificadores (
username,video_id) - metadados visiveis do video no ssstik (
author,description,stats) - links dos botoes (
without_watermark,without_watermark_hd,slide,mp3) - dados de album (
slide_download_urls,slide_image_urls,count) - link preferencial e tempo total da operacao
- Se a URL tiver
&, use aspas no shell. - Se o site ativar anti-bot/reCAPTCHA, tente novamente depois de alguns minutos.
- Se mudar o HTML do ssstik, ajuste seletores em
main.pyeapi.py.
Use somente para conteudo que voce possui permissao para baixar e processar.