Utils API endpoints
April 19, 2026 · View on GitHub
yt-dlp information
Return the application complete parameters
GET http://localhost:5011/info
Response example :
{
"ydl_engine": "yt-dlp",
"ydl_version": "2026.03.17",
"ydl_git_head": "04d6974f502bbdfaed72c624344f262e30ad9708",
"ydl_api_ng_container_date": "unknown",
"ydl_api_ng_branch": "unknown",
"ydl_api_ng_revision": "unknown",
"processed_config": {
"meta_keys": {
"_int": [
"_int_test",
"_listen_port",
"_log_backups",
"_log_level",
"_redis_ttl",
"_redis_port",
"age_limit",
"buffersize",
"concurrent_fragment_downloads",
"extractor_retries",
"http_chunk_size",
"max_filesize",
"max_sleep_interval",
"max_views",
"min_filesize",
"min_views",
"ratelimit",
"retries",
"skip_playlist_after_errors",
"sleep_interval",
"sleep_interval_requests",
"sleep_interval_subtitles",
"socket_timeout",
"throttledratelimit",
"trim_file_name",
"xattr_set_filesize"
],
"_float": [
"_float_test"
],
"_bool": [
"_allow_dangerous_post_requests",
"_allow_programmation",
"_bool_test",
"_dev_mode",
"_enable_redis",
"_enable_users_management",
"_skip_check",
"_skip_info_dict",
"allow_multiple_audio_streams",
"allow_multiple_video_streams",
"allow_playlist_files",
"allow_unplayable_formats",
"allsubtitles",
"bidi_workaround",
"break_on_existing",
"break_on_reject",
"break_per_url",
"call_home",
"check_formats",
"clean_infojson",
"continuedl",
"debug_printtraffic",
"dynamic_mpd",
"extract_flat",
"force_generic_extractor",
"force_write_download_archive",
"forcedescription",
"forceduration",
"forcefilename",
"forceid",
"forcethumbnail",
"forcetitle",
"forceurl",
"format_sort_force",
"geo_bypass",
"getcomments",
"hls_prefer_native",
"hls_split_discontinuity",
"hls_use_mpegts",
"ignore_no_formats_error",
"ignoreerrors",
"include_ads",
"keepvideo",
"legacyserverconnect",
"list_thumbnails",
"listformats",
"listsubtitles",
"mark_watched",
"no_color",
"no_warnings",
"nocheckcertificate",
"nopart",
"noplaylist",
"noprogress",
"noresizebuffer",
"overwrites",
"playlistrandom",
"playlistreverse",
"prefer_ffmpeg",
"prefer_free_formats",
"prefer_insecure",
"quiet",
"restrictfilenames",
"simulate",
"skip_download",
"updatetime",
"usenetrc",
"verbose",
"windowsfilenames",
"write_all_thumbnails",
"writeannotations",
"writeautomaticsub",
"writedescription",
"writedesktoplink",
"writeinfojson",
"writelink",
"writesubtitles",
"writethumbnail",
"writeurllink",
"writewebloclink",
"youtube_include_dash_manifest",
"youtube_include_hls_manifest"
],
"_array": [
"_array_test",
"_hosts",
"_info_dict_field_retrieve",
"_playlist_indicators",
"_video_indicators",
"format_sort",
"subtitleslangs"
],
"_object": [
"_object_test",
"_when_playlist",
"_when_live",
"compat_opts",
"dump_single_json",
"external_downloader",
"external_downloader_args",
"extractor_args",
"forcejson",
"forceprint",
"http_headers",
"match_filter",
"outtmpl",
"paths",
"postprocessor_args",
"postprocessor_hooks",
"postprocessors",
"print_to_file",
"progress_hooks",
"progress_template"
],
"_hidden": [
"_token",
"_unit_test",
"logger",
"password",
"postprocessor_hooks",
"progress_hooks",
"username"
]
},
"app_config": {
"APP": {
"_name": "APP",
"_api_route_download": "/download",
"_api_route_queue": "/queue",
"_api_route_extract_info": "/extract_info",
"_api_route_info": "/info",
"_api_route_active_downloads": "/active_downloads",
"_enable_users_management": false,
"_log_level": 20,
"_log_backups": 7,
"_listen_port": 80,
"_listen_ip": "0.0.0.0",
"_enable_redis": true,
"_redis_ttl": 3600,
"_redis_host": "ydl_api_ng_redis",
"_redis_port": 6379,
"_skip_info_dict": true,
"_allow_dangerous_post_requests": false,
"_api_route_programmation": "/programmation",
"_programmation_interval": 60,
"_info_dict_field_retrieve": [
"id",
"title",
"original_url",
"duration"
]
}
},
"user_config": {},
"preset_config": {
"DEFAULT": {
"_name": "DEFAULT",
"quiet": true,
"noplaylist": true,
"updatetime": false,
"format": "bestvideo+bestaudio/best",
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
},
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
},
"AUDIO": {
"_name": "AUDIO",
"format": "bestaudio",
"postprocessors": [
{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "320"
},
{
"key": "EmbedThumbnail"
},
{
"key": "FFmpegMetadata"
},
{
"key": "FFmpegSplitChapters",
"force_keyframes": false
}
],
"writethumbnail": true,
"outtmpl": {
"default": "audio/%(title)s.%(ext)s",
"chapter": "audio/%(title)s/%(section_number)s-%(section_title)s.%(ext)s"
},
"quiet": true,
"noplaylist": true,
"updatetime": false,
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
}
},
"BEST": {
"_name": "BEST",
"format": "bestvideo+bestaudio/best",
"quiet": true,
"noplaylist": true,
"updatetime": false,
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
},
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
},
"FULLHD": {
"_name": "FULLHD",
"format": "best[height=1080]/bestvideo[height=1080]+bestaudio/best",
"quiet": true,
"noplaylist": true,
"updatetime": false,
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
},
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
},
"HD": {
"_name": "HD",
"format": "best[height=720]/bestvideo[height=720]+bestaudio/best",
"quiet": true,
"noplaylist": true,
"updatetime": false,
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
},
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
},
"SD": {
"_name": "SD",
"format": "best[height=360]/bestvideo[height=360]+bestaudio/best",
"quiet": true,
"noplaylist": true,
"updatetime": false,
"restrictfilenames": true,
"windowsfilenames": true,
"ignoreerrors": true,
"_when_playlist": {
"ignoreerrors": true
},
"cachedir": "/home/ydl_api_ng/cache",
"paths": {
"home": "./downloads/"
},
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
}
},
"site_config": {
"KNOWN": {
"_name": "KNOWN",
"ignoreerrors": false
},
"YOUTUBE": {
"_name": "YOUTUBE",
"_hosts": [
"music.youtube.com",
"www.youtube.com",
"youtu.be"
],
"_video_indicators": [
"/watch?"
],
"_playlist_indicators": [
"?list=",
"&list=",
"/user/",
"/playlists",
"/videos",
"/featured"
],
"_redis_queue": "ydl_api_ng_slow",
"_when_playlist": {
"_redis_queue": "ydl_api_ng_slow"
},
"ignoreerrors": false
}
},
"auth_config": {},
"location_config": {
"DEFAULT": {
"_name": "DEFAULT",
"paths": {
"home": "./downloads/"
}
}
},
"template_config": {
"DEFAULT": {
"_name": "DEFAULT",
"outtmpl": {
"default": "videos/%(webpage_url_domain)s/%(title)s_(%(height)s).%(ext)s"
}
},
"AUDIO": {
"_name": "AUDIO",
"outtmpl": {
"default": "audio/%(title)s.%(ext)s",
"chapter": "audio/%(title)s/%(section_number)s-%(section_title)s.%(ext)s"
}
}
},
"workers_config": {
"SUPERVISORD": {
"_name": "SUPERVISORD",
"logfile": "/app/logs/supervisord.log",
"pidfile": "/app/tmp/supervisord_pid",
"loglevel": "%(ENV_LOG_LEVEL)s",
"user": "%(ENV_UID)s"
},
"PROGRAMMATION": {
"_name": "PROGRAMMATION",
"command": "python3 programmation_daemon.py",
"process_name": "%(program_name)s-%(process_num)s",
"numprocs": "1",
"directory": ".",
"stopsignal": "TERM",
"autostart": "true",
"autorestart": "true",
"user": "%(ENV_UID)s",
"stdout_logfile": "/app/logs/%(program_name)s.log",
"stderr_logfile": "/app/logs/%(program_name)s.log",
"stdout_logfile_maxbytes": "25MB"
},
"WORKER_YDL_API_NG": {
"_name": "WORKER_YDL_API_NG",
"command": "rq worker ydl_api_ng -u \"redis://ydl_api_ng_redis:6379\"",
"process_name": "%(program_name)s-%(process_num)s",
"numprocs": "%(ENV_NB_WORKERS)s",
"directory": ".",
"stopsignal": "TERM",
"autostart": "true",
"autorestart": "true",
"user": "%(ENV_UID)s",
"stdout_logfile": "/app/logs/%(program_name)s.log",
"stderr_logfile": "/app/logs/%(program_name)s.log",
"stdout_logfile_maxbytes": "25MB"
},
"WORKER_YDL_API_NG_SLOW": {
"_name": "WORKER_YDL_API_NG_SLOW",
"command": "rq worker ydl_api_ng_slow -u \"redis://ydl_api_ng_redis:6379\"",
"process_name": "%(program_name)s-%(process_num)s",
"numprocs": "1",
"directory": ".",
"stopsignal": "TERM",
"autostart": "true",
"autorestart": "true",
"user": "%(ENV_UID)s",
"stdout_logfile": "/app/logs/%(program_name)s.log",
"stderr_logfile": "/app/logs/%(program_name)s.log",
"stdout_logfile_maxbytes": "25MB"
}
}
}
}
Extract info
Returns the standard youtube-dlp extract info object.
GET http://localhost:5011/extract_info?url=https://www.youtube.com/watch?v=9Lgc3TxqgHA
Or with a POST request to provide cookies :
POST http://localhost:5011/extract_info?url=https://www.youtube.com/watch?v=wV4wepiucf4
Content-Type: application/json
{
"cookies" : "URL encoded (RFC3986 format) netscape cookies format"
}
API return
Example for youtube :
{
"id": "a0sxBO9HZ-M",
"title": "Moi j'envoie des GIF de loutres",
"formats": [], // all available formats (censored for readability)
"thumbnails": [], // all available thumbnails (censored for readability)
"thumbnail": "https://i.ytimg.com/vi/a0sxBO9HZ-M/maxresdefault.jpg",
"description": "Extrait de The Good Place, Saison 4 Épisode 8 : Irrévocables funérailles",
"channel_id": "UCQexII-PYa3nOUYElK0sOPw",
"channel_url": "https://www.youtube.com/channel/UCQexII-PYa3nOUYElK0sOPw",
"duration": 3,
"view_count": 91,
"average_rating": null,
"age_limit": 0,
"webpage_url": "https://www.youtube.com/watch?v=a0sxBO9HZ-M",
"categories": [
"Gaming"
],
"tags": [],
"playable_in_embed": true,
"live_status": "not_live",
"media_type": "video",
"release_timestamp": null,
"_format_sort_fields": [
"quality",
"res",
"fps",
"hdr:12",
"source",
"vcodec",
"channels",
"acodec",
"lang",
"proto"
],
"automatic_captions": {}, // all available captions (censored for readability, it really a lot)
"subtitles": {},
"comment_count": null,
"chapters": null,
"heatmap": null,
"like_count": 2,
"channel": "Totonyus",
"channel_follower_count": 450,
"creators": null,
"uploader": "Totonyus",
"uploader_id": "@Totonyus",
"uploader_url": "https://www.youtube.com/@Totonyus",
"upload_date": "20191127",
"timestamp": 1574879390,
"availability": "public",
"original_url": "https://www.youtube.com/watch?v=a0sxBO9HZ-M",
"webpage_url_basename": "watch",
"webpage_url_domain": "youtube.com",
"extractor": "youtube",
"extractor_key": "Youtube",
"playlist": null,
"playlist_index": null,
"display_id": "a0sxBO9HZ-M",
"fulltitle": "Moi j'envoie des GIF de loutres",
"duration_string": "3",
"release_year": null,
"is_live": false,
"was_live": false,
"requested_subtitles": null,
"_has_drm": null,
"epoch": 1776606203,
"requested_formats": [], // requested formats (censored for readability)
"format": "136 - 1280x720 (720p)+251 - audio only (medium)",
"format_id": "136+251",
"ext": "mkv",
"protocol": "https+https",
"language": "es",
"format_note": "720p+medium",
"filesize_approx": 484269,
"tbr": 1176.267,
"width": 1280,
"height": 720,
"resolution": "1280x720",
"fps": 24,
"dynamic_range": "SDR",
"vcodec": "avc1.64001f",
"vbr": 1058.342,
"stretched_ratio": null,
"aspect_ratio": 1.78,
"acodec": "opus",
"abr": 117.925,
"asr": 48000,
"audio_channels": 2
}