Asosiy kontentga o'tish

Kirish

Tunelio API har qanday YouTube video yoki audiosi uchun to'g'ridan-to'g'ri yuklab olish havolasini bitta so'rovda qaytaradi — navbat, polling yoki progress webhook yo'q. Butun API atigi ikki endpointdan iborat: GET /info — metama'lumotlar uchun, GET /create — yuklab olish havolasi uchun.

Asosiy URL: https://tunelio.dev. Barcha so'rovlar TLS 1.2+ orqali. Javoblar — JSON, UTF-8 kodirovkasida.

Ish mantig'i

Avval /info chaqirib, qaysi formatlar mavjudligini ko'ring. Keyin tanlangan sifat bilan /create chaqiring. /create javobida CDN tunnel havolasi bo'ladi — uni foydalanuvchiga, yuklovchiga yoki S3'ga uzating. Uchinchi qadam yo'q.

Polling umuman yo'q. Boshqa download API'larda job ID va SSE oqimlariga o'rgangan bo'lishingiz mumkin. Bizda u yo'q — har bir so'rov bitta javob bilan tugaydi.

Autentifikatsiya

Barcha so'rovlar Authorization header'da Bearer token sifatida API kalit talab qiladi.

Authorization: Bearer tnl_8f3a92b1c4d5e6f7a8b9c0d1e2f3a4b5

Avval @TunelioDevBot orqali Telegram'da kirish qilasiz (email yoki parol kerak emas), so'ng API kalitni Shaxsiy kabinetdan o'zingiz hosil qilasiz. Butun jarayon taxminan 60 soniya oladi va to'lov usuli talab qilmaydi.

Kalitni server tomonida saqlang. Kalit kimning qo'lida bo'lsa, sizning kreditlaringizni sarflaydi. Hech qachon uni brauzer kodi yoki mobil ilova ichiga joylamang — o'z backendingiz orqali proksilang.

Tezkor boshlash

Birinchi so'rovni uch qatorda yuboring. Kalitni o'zingizniki bilan va URL'ni istalgan YouTube havolasi bilan almashtiring.

curl "https://tunelio.dev/create?quality=720p&url=https://youtu.be/dQw4w9WgXcQ" \
  -H "Authorization: Bearer tnl_…"

GET /info

YouTube havolasini hal qilib, to'liq metama'lumotlarni qaytaradi — sarlavha, davomiylik, rasm va har bir mavjud video hamda audio formatni fayl hajmi va o'lchamlari bilan.

So'rov parametrlari

urlstringrequiredYouTube havolasi: watch?v=, youtu.be/, /shorts/, /embed/ yoki /live/. Bularning hammasi bir xil ishlaydi.

Sinab ko'rish

GETtunelio.dev/info
Sinash · narxi 6 credits
GET tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ

Javob ko'rinishi

titlestringVideo title as published.
duration_secondsintegerTotal length in seconds.
duration_strstringHuman-readable HH:MM:SS (or MM:SS when < 1h). Zero-padded.
thumbnailstring (URL)Highest-resolution thumbnail available.
formats[]array<Format>Every video format. See sub-fields below.
formats[].qualitystringHuman label: 144p, 240p, 360p, 480p, 720p, 1080p.
formats[].file_sizeinteger (bytes)Exact size in bytes.
formats[].file_size_strstringHuman-readable size — e.g. "84.50 MB" or "1.20 GB".
formats[].widthintegerEncoded frame width in pixels.
formats[].heightintegerEncoded frame height in pixels.
audioFormatobject<Audio>|nullThe best MP3 audio rendition — single object, or null if no audio track is available.
audioFormat.formatstringContainer — currently mp3.
audioFormat.file_sizeintegerExact MP3 size in bytes.
audioFormat.file_size_strstringHuman-readable MP3 size — e.g. "35.01 MB".

Narxi

Har bir chaqiruv 6 kredit. Bir xil URL keshlangan bo'lsa, 30 daqiqa ichida bepul qaytadi.

GET /create

Tanlangan format uchun to'g'ridan-to'g'ri, imzolangan CDN yuklab olish havolasini hosil qiladi. Havola shu javobning o'zida qaytadi — kutib turish yoki webhook tinglash shart emas.

So'rov parametrlari

urlstringrequiredYouTube havolasi — /info bilan bir xil.
qualitystringrequired144p, 240p, 360p, 480p, 720p, 1080p, 2160p (faqat Mega) yoki audio uchun mp3.

Sinab ko'rish

GETtunelio.dev/create
Sinash · narxi 10 credits
GET tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=1080p

Javob ko'rinishi

urlstring (URL)Signed CDN tunnel URL. Hand to your user or pipe to storage.
filenamestringSuggested filename based on the video title and chosen format.
qualitystringEcho of your requested quality — e.g. 1080p or mp3.
modestring"video" or "audio".
typestring"merge" (video+audio muxed) or "single" (audio-only or pre-muxed).
expiresinteger (unix)Timestamp when the signed URL stops working — typically 6 hours out.
file_sizeintegerFinal file size in bytes.
file_size_strstringHuman-readable size — e.g. "84.50 MB".
statusstringAlways "tunnel" on success.

Narxi

Har bir chaqiruv 10 kredit. Fayl hajmidan qat'i nazar narx bir xil — siz baytlar uchun emas, hal qilish ishlari uchun to'laysiz.

Bayt-fayllar serveringizdan o'tmaydi. Backendingiz faqat kichik JSON javob ko'radi. Tunnel havolasi to'g'ridan-to'g'ri CDN'dan foydalanuvchingizga oqib boradi.

GET /credits

Qolgan kreditlaringiz va joriy tarifingizni qaytaradi. Bir to'plam so'rovdan oldin qancha kredit qolganini tekshirish yoki o'z kabinetingizda balansni ko'rsatish uchun ishlating.

Hech qanday parametr yo'q — faqat API kalitingiz. Boshqa joylardagi kabi o'sha Bearer token (yoki X-API-Key header) shu chaqiruvni ham autentifikatsiya qiladi.

Sinab ko'rish

GETtunelio.dev/credits
Sinash · narxi bepul
GET tunelio.dev/credits

Javob ko'rinishi

creditsintegerQolgan kredit balansi, butun son ko'rinishida.
planstringJoriy tarifingiz: trial, pro, ultra yoki mega. Muddati o'tgan pulli tarif trial sifatida qaytadi.

Javob header'lari

Xuddi shu balans /info va /create kabi javob header'larida ham takrorlanadi — agar javob tanasini ajratmasdan raqamlarni olmoqchi bo'lsangiz, qulay:

X-Credits-RemainingintQolgan kredit balansi.
X-Credits-PlanstrJoriy tarif nomi.

Narxi

Bepul. Balansni tekshirish hech qachon kredit sarflamaydi.

Bu endpoint faqat o'qish uchun va doim bepul, shuning uchun uni xohlagancha — masalan, katta to'plamdan oldin — hech narsa sarflamasdan so'rashingiz mumkin.

/tunnel

/tunnel — bu /create qaytaradigan havola. Uni kodingizdan chaqirmaysiz — havolani to'g'ridan-to'g'ri foydalanuvchiga, <a download> tegingizga, S3 yuklovchisiga, Telegram botingizga va h.k.'ga topshirasiz.

Nima qaytaradi

Faylning o'zi — MP4 yoki MP3 — kerakli Content-Type va Content-Disposition: attachment; filename="…" header'lari bilan. HTTP range so'rovlarni qo'llaydi, shuning uchun video pleyerlar oldinga o'tib, yuklovchilar to'xtab qoldirilgan joydan davom etishi mumkin.

Autentifikatsiya

Talab qilinmaydi. URL exp vaqt belgisi va sig HMAC bilan o'z-o'zidan imzolangan. expires o'tib ketgach, havola 410 Gone qaytaradi — yangi havola uchun /create'ni qaytadan chaqiring.

Narxi

Bepul. Tarmoq kengligi biz tomondan — oqilona miqdorda. Suiiste'mol qilishni cheklaymiz, lekin oddiy foydalanish hech qachon cheklovga uchramaydi.

Cheklov chastotalari

Cheklov chastotalari API kalit bo'yicha, daqiqasidagi so'rovlar soni bilan o'lchanadi. Har 60 soniyada surilma oynada qayta tiklanadi. Ultra va Mega tariflarda cheklov yo'q.

Trial15 req / min
Pro5 req / sec
Ultrano limit
Megano limit

Cheklovdan oshib ketsangiz, 429 Too Many Requests va Retry-After header'i (soniyalarda) qaytadi. Agar cheklovga muntazam yetib boryotgan bo'lsangiz, mijoz tomonida backoff qo'shish o'rniga tarifni yangilang — cheklovlar siz kreditlarni tasodifan sarflab yubormasligingiz uchun mavjud.

Xatoliklar

Barcha xato javoblari bir xil ko'rinishda:

{
  "error": "invalid_url",
  "message": "Provided URL is not a recognised YouTube link."
}

Status kodlari

400invalid_requestMissing or malformed parameter — usually a bad URL or unknown quality.
401unauthorizedMissing or invalid Bearer token.
402insufficient_creditsYour account is out of credits. Top up or upgrade.
404not_foundVideo does not exist, is private, or was deleted.
410goneYou called a /tunnel URL after its expires timestamp.
429rate_limitedPlan rate limit hit. Respect the Retry-After header.
500server_errorUnexpected on our side. Safe to retry with exponential backoff.
503upstream_changedYouTube changed something we hadn't patched yet. Usually self-heals within an hour.

Kreditlar va to'lov

Har bir chaqiruv video hajmi yoki davomiyligidan qat'i nazar belgilangan miqdordagi kreditni sarflaydi:

GET /info6 credits
GET /create10 credits
/tunnel downloadfree

Odatdagi "ma'lumot olish, keyin yuklab olish" ketma-ketligi 16 kreditga teng. Yangi foydalanuvchilarga 100 ta bepul kredit beriladi. Pulli tariflar oylik yangilanadi va har siklda yangi kreditlar beriladi.

Muvaffaqiyatsiz so'rovlar (4xx va 5xx) kredit sarflamaydi — siz faqat muvaffaqiyatli hal qilingan so'rovlar uchun to'laysiz.

Tushuna olmadingiz yoki biror narsa yetishmayotgan bo'lsa?
Telegramda bizga yozing → @TunelioDevBot