TTSaveAPI — это мощный инструмент для скачивания и стриминга медиа с TikTok. API поддерживает обработку URL, скачивание контента и обработку ошибок.
Для упрощённого пользования API рекомендуем использовать Python библиотеку PyTTSave.
- Базовый URL:
 
http://45.13.225.104:4347/api/v3/
- Версия API: v3
 - Формат ответов: JSON
 
Скачивает медиа по указанному URL TikTok и возвращает multipart stream, содержащий одно или несколько файлов.
Тело запроса:
| Параметр | Тип | Обязательный | Описание | 
|---|---|---|---|
| url | string | да | URL видео или фото из TikTok. | 
| download_content_type | string | да | Тип контента: Тип контента: VIDEO_ONLY (только видео, где коллажи будут присланы в виде видео) или ORIGINAL (исходный контент, включая фото, аудио, видео). | 
Пример запроса:
POST /download HTTP/1.1
Content-Type: application/json
{
  "url": "https://www.tiktok.com/@author123/video/312132123123132",
  "download_content_type": "VIDEO_ONLY"
}Формат ответа
Сервер возвращает multipart stream (multipart/x-mixed-replace), содержащий один или несколько файлов. Каждый файл разделяется границей (boundary), а внутри блока указывается его Content-Type и Content-Disposition.
Пример ответа:
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace; boundary=simple_boundary
Content-Meta: "Encoded Base64 json string"
--simple_boundary
Content-Type: video/mp4
Content-Disposition: attachment; filename="video.mp4"
(binary data)
--simple_boundary
Content-Type: image/jpeg
Content-Disposition: attachment; filename="image.jpg"
(binary data)
--simple_boundary
Content-Type: audio/mpeg
Content-Disposition: attachment; filename="audio.mp3"
(binary data)
--simple_boundary--Content-Meta хранит в себе зашифрованный JSON посредством использования шифра Base64.
Пример расшифрованной Content-Meta:
{"title": "Title", "desc": "Description"}Коды ошибок:
- 400: Некорректный запрос (отсутствует url).
 
{ "detail": "URL is required" }- 400: Некорректный запрос (отсутствует или неправильный тип контента).
 
{ "detail": "Invalid content type }- 400: Если серверу не удалось скачать контент.
 
{ "detail": "No files available for download" }- 500: Ошибка сервера (например, не удалось скачать файл). Пример ответа:
 
{ "detail": "Failed to save the file" }Проверка работоспособности сервера.
Пример запроса:
POST /ping HTTP/1.1Ответ:
pong
TTSaveAPI имеет встроенные обработчики ошибок, чтобы гарантировать ясность ответов при возникновении проблем.
Возникают при неожиданных проблемах.
Пример ответа:
{
  "message": "Internal Server Error",
  "detail": "Error: <подробности ошибки>"
}Возникают при некорректных или отсутствующих параметрах в запросе.
Пример ответа:
{
  "message": "Validation Error",
  "detail": [
    {
      "loc": ["body", "url"],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}1.	При получении ответа клиент должен обработать поток multipart/x-mixed-replace, читая данные по boundary.
2.	Каждый файл содержит заголовки Content-Type и Content-Disposition, которые помогают определить тип файла и его имя.
3.	Парсинг потока возможен с использованием стандартных HTTP-библиотек. В Python, например, можно использовать requests с iter_content():
Пример кода:
boundary = b"--simple_boundary"
for chunk in response.iter_content(chunk_size=1024):
    if boundary in chunk:
        print("New file received!")
    else:
        with open("downloaded_file.mp4", "ab") as f:
            f.write(chunk)Отправьте запрос на /ping, чтобы проверить доступность API.