API для скачивания клипов и VOD Twitch
Ссылка на клип Twitch превращается в файлы с СОБСТВЕННОГО CDN клипа: H.264 MP4 в каждом качестве, которое хранит Twitch (обычно 1080p, 720p, 480p и 360p), у каждого — точный размер, прочитанный с CDN, всё в одном ответе. VOD (twitch.tv/videos/…) устроен иначе, потому что Twitch отдаёт его только по HLS: в ответе по-прежнему все качества с размерами, но каждый url — наш: сегменты на лету собираются в MP4 и идут потоком через наш сервер, без перекодирования и без записи на диск. Исходный m3u8 лежит в поле hls, если вы хотите отдать его плееру напрямую. Ссылка на живой канал отклоняется с 404 за 0.1 кредита; VOD только для подписчиков возвращается как PRIVATE_CONTENT.
Какие ссылки принимаем
Любая ссылка на публичный пост с этих хостов. Короткие ссылки и страновые зеркала раскрываются автоматически.
https://clips.twitch.tv/DeliciousDelightfulPicklesWOOPhttps://www.twitch.tv/xqc/clip/DeliciousDelightfulPicklesWOOPhttps://m.twitch.tv/videos/1484137772https://player.twitch.tv/?video=v1484137772
Хосты
twitch.tv
Запрос
curl -s "https://api.saveapi.org/v1/twitch" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://clips.twitch.tv/DeliciousDelightfulPicklesWOOP"
Ответ
{
"success": true,
"platform": "twitch",
"type": "video",
"medias": [
{ "type": "video", "url": "https://…", "ext": "mp4" },
{ "type": "audio", "url": "https://…", "ext": "mp3" }
],
"formats": [
{ "format": "mp4_480", "label": "480p", "type": "video", "size_mb": 7.9, "url": "https://…" },
{ "format": "mp4_720", "label": "720p", "type": "video", "size_mb": 17.19, "url": "https://…" }
],
"recommended_format": "mp4_720",
"meta": { "title": "…", "author": "…", "thumbnail": "https://…" },
"credits": { "spent": 1.5, "remaining": 99988.5 }
}Стоит знать
Все качества, которые источник уже отдаёт, приходят в одном ответе — у каждого готовая ссылка и точный размер. Выбирайте нужное на своей стороне: второго запроса и параметра формата нет.
Вопросы перед началом
- Клипы и VOD стоят одинаково?
- Нет. Клип — 1.5 кредита: это готовый MP4 на CDN Twitch, мы лишь отдаём ссылки. VOD — 3 кредита, как Rutube, потому что файл собирается из HLS-сегментов и идёт потоком через нас. Цена — за одно разрешение ссылки: ссылки на все качества лежат в том же ответе, и скачать одну, несколько или ни одной ничего дополнительно не стоит.
- Насколько велик VOD и насколько точен size_mb?
- Велик. Десятичасовой архив стримера — примерно 15 ГБ в 720p60, и даже 360p — около 3 ГБ. size_mb измеряется по выборке реальных сегментов, а не берётся из подсказки bandwidth у Twitch (она ошибается до 40%); ожидайте расхождение в несколько процентов с полученным файлом. У потоковой ссылки нет ни Content-Length, ни Range.
- Что возвращает ссылка на живой канал?
- 404 с пояснением, что twitch.tv/<канал> — это прямой эфир и скачивать нечего, за 0.1 кредита. Отправьте клип (clips.twitch.tv/… или twitch.tv/<канал>/clip/…) либо VOD (twitch.tv/videos/<id>) — оба определяются по ссылке; старые формы twitch.tv/<канал>/video/<id> и player.twitch.tv?video= тоже принимаются.