# Rutube Downloader — Zapi reference > Download video dari Rutube — hingga 1080p. Tempel URL video. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ status, message, content }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/downloader/rutube - Endpoint catalog: https://zpi.web.id/category/downloader - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## Rutube Downloader **Category:** downloader · **Slug:** `rutube` **Detail page:** https://zpi.web.id/api/downloader/rutube Download video dari Rutube — hingga 1080p. Tempel URL video. **Tags:** rutube, downloader, video ### Download Download media dari Rutube. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:rutube/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Rutube media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=pZmQQY-ArYRewo1S-RpOU&exp=1782046355255&sig=v1_gDEiIYNMuyaiK3g3LN4Eugqc-K6A9EbWET4VyMX0&sec=FwO5OZsQcwZE8xieo2gAPVh5H80qutxU5fbUK-VVun8&iv=iQu2y6SzSqBQf-rlKI5jQg", "type": "video", "filename": "Жертва и странное решение соперника. Шахматы рапид - Шахматы Олег Соломаха (1080p).mp4", "provider": "rutube", "originalUrl": "https://rutube.ru/video/2239a49871ae52770b4fd7093c46bb7f/" } ``` --- _Generated: 2026-08-02T14:31:54.496Z_