cobalt api documentation
this document provides info about methods and acceptable variables for all cobalt api requests.
POST: /
cobalt's main processing endpoint.
request body type: application/json
response body type: application/json
⚠️ you must include Accept and Content-Type headers with every `POST /` request.
Accept: application/json
Content-Type: application/json
request body
key |
type |
expected value(s) |
default |
description |
url |
string |
URL encoded as URI |
null |
must be included in every request. |
videoQuality |
string |
144 / ... / 2160 / 4320 / max |
1080 |
720 quality is recommended for phones. |
audioFormat |
string |
best / mp3 / ogg / wav / opus |
mp3 |
|
audioBitrate |
string |
320 / 256 / 128 / 96 / 64 / 8 |
128 |
specifies the bitrate to use for the audio. applies only to audio conversion. |
filenameStyle |
string |
classic / pretty / basic / nerdy |
classic |
changes the way files are named. previews can be seen in the web app. |
downloadMode |
string |
auto / audio / mute |
auto |
audio downloads only the audio, mute skips the audio track in videos. |
youtubeVideoCodec |
string |
h264 / av1 / vp9 |
h264 |
h264 is recommended for phones. |
youtubeDubLang |
string |
en / ru / cs / ja / ... |
-- |
specifies the language of audio to download, when the youtube video is dubbed |
youtubeDubBrowserLang |
boolean |
true / false |
false |
uses value from the Accept-Language header for youtubeDubLang . |
alwaysProxy |
boolean |
true / false |
false |
tunnels all downloads through the processing server, even when not necessary. |
disableMetadata |
boolean |
true / false |
false |
disables file metadata when set to true . |
tiktokFullAudio |
boolean |
true / false |
false |
enables download of original sound used in a tiktok video. |
tiktokH265 |
boolean |
true / false |
false |
changes whether 1080p h265 videos are preferred or not. |
twitterGif |
boolean |
true / false |
true |
changes whether twitter gifs are converted to .gif |
response
the response will always be a JSON object containing the status
key, which will be one of:
error
- something went wrong
picker
- we have multiple items to choose from
redirect
- you are being redirected to the direct service URL
stream
- cobalt is proxying the download for you
stream/redirect response
key |
type |
values |
status |
string |
stream / redirect |
url |
string |
url for the cobalt stream, or redirect to an external link |
picker response
key |
type |
values |
status |
string |
picker |
picker |
array |
array of objects containing the individual media |
picker object
key |
type |
values |
type |
string |
photo / video / gif |
url |
string |
|
thumb |
string |
optional thumbnail url |
error response
key |
type |
values |
status |
string |
error |
error |
object |
contains more context about the error |
error object
key |
type |
values |
code |
string |
machine-readable error code explaining the failure reason |
context |
object |
optional container for providing more context |
error.context object
key |
type |
values |
service |
string |
optional, stating which service was being downloaded from |
limit |
number |
optional number providing the ratelimit maximum number of requests, or maximum downloadable video duration |
GET: /
returns current basic server info.
response body type: application/json
response body
key |
type |
variables |
cobalt |
object |
information about the cobalt instance |
git |
object |
information about the codebase that is currently running |
cobalt object
key |
type |
description |
version |
string |
current version |
url |
string |
server url |
startTime |
string |
server start time in unix milliseconds |
durationLimit |
number |
maximum downloadable video length in seconds |
services |
string[] |
array of services which this instance supports |
git object
key |
type |
variables |
commit |
string |
commit hash |
branch |
string |
git branch |
remote |
string |
git remote |