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.
Autentifikatsiya
Barcha so'rovlar Authorization header'da Bearer token sifatida API kalit talab qiladi.
Authorization: Bearer tnl_8f3a92b1c4d5e6f7a8b9c0d1e2f3a4b5Avval @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.
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
tunelio.dev/infoGET tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQJavob 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
tunelio.dev/createGET tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=1080pJavob 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.
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
tunelio.dev/creditsGET tunelio.dev/creditsJavob 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.
/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.
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
invalid_requestMissing or malformed parameter — usually a bad URL or unknown quality.unauthorizedMissing or invalid Bearer token.insufficient_creditsYour account is out of credits. Top up or upgrade.not_foundVideo does not exist, is private, or was deleted.goneYou called a /tunnel URL after its expires timestamp.rate_limitedPlan rate limit hit. Respect the Retry-After header.server_errorUnexpected on our side. Safe to retry with exponential backoff.upstream_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 creditsGET /create10 credits/tunnel downloadfreeOdatdagi "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.