Files
2026-06-09 18:40:21 +02:00

104 lines
5.2 KiB
Markdown

---
title: Cobalt
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, downloads, video, youtube, tiktok, nodejs, downloader]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=downloads, https://github.com/imputnet/cobalt]
---
# Cobalt
> Outil minimaliste et multiplateforme pour **télécharger des vidéos, audios et GIF** depuis YouTube, TikTok, Twitter/X, Instagram, SoundCloud, Reddit et +50 plateformes. API REST + WebUI.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://cobalt.tools/ |
| **GitHub** | https://github.com/imputnet/cobalt |
| **License** | AGPL-3.0 |
| **Langage** | TypeScript / Node.js (Express + Elysia) |
| **Étoiles GitHub** | 3 465 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-downloads]] |
## Description
Cobalt est un **downloader média universel** qui s'attaque au problème récurrent des outils type youtube-dl : des **dizaines de forks**, des CLI obscures, des GUIs vieillissantes. Cobalt propose une approche moderne : un **backend unique** (Node.js + FFmpeg) qui supporte plus de **50 plateformes** (YouTube, TikTok, Twitter/X, Instagram, Reddit, SoundCloud, Vimeo, Pinterest, Threads, Bluesky, VK, Twitch, Bilibili, etc.) derrière une **API REST simple** et une **WebUI minimaliste**.
L'API est exposée sur `/api/` avec deux endpoints principaux : `POST /api/` (lancer un téléchargement) et `GET /api/stream?p=...` (servir le fichier). Chaque requête accepte un JSON avec l'URL source, un format (`auto`, `best`, `audio`, `gif`, `mute`) et des options (qualité, légende, conversion). Cobalt retourne soit un **stream direct** (binary), soit un **tunnel via tunnel.cobalt.tools** pour contourner les restrictions géographiques/IP.
Le projet est **AGPL-3.0**, ce qui impose la redistribution du code source modifié. Cobalt se distingue aussi par sa **philosophie « pas de pubs, pas de trackers, pas de comptes »** : aucune inscription, aucun cookie, aucun historique. Une **instance publique officielle** existe sur `cobalt.tools` mais l'auto-hébergement est encouragé pour la confidentialité.
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
services:
cobalt:
image: ghcr.io/imputnet/cobalt:latest
container_name: cobalt
restart: unless-stopped
ports:
- "9000:9000"
- "9000:9000/udp" # pour le tunnel UDP
environment:
- API_PORT=9000
- API_LISTEN=0.0.0.0:9000
volumes:
- ./cookies:/cookies # cookies YouTube pour contourner les restrictions
- ./downloads:/downloads
```
UI accessible sur `http://localhost:9000`. L'endpoint API est `/api/`.
### Option 2 : Installation manuelle
Cobalt nécessite **Node.js 20+** et **FFmpeg 6+**. Cloner le repo, lancer `pnpm install`, `pnpm build`, `pnpm start`. Pour le développement : `pnpm dev`.
## Configuration
1. **Cookies YouTube** : monter un fichier `cookies.txt` (exporté depuis une extension type "Get cookies.txt LOCALLY") dans `/cookies/cookies.txt` pour pouvoir télécharger des vidéos nécessitant une connexion (âges, pays, etc.).
2. **Tunnel** : configurer `TUNNEL_ENABLED=true` et un domaine public pour permettre le téléchargement de plateformes qui bloquent les IP de serveurs (TikTok, Instagram).
3. **API Key** : si `API_KEY` est défini, toutes les requêtes doivent inclure un header `Api-Key: xxx` (mode privé).
4. **Rate limit** : `RATE_LIMIT_WINDOW` et `RATE_LIMIT_MAX` pour limiter les abus.
5. **Format / qualité par défaut** : `DOWNLOAD_AUDIO_BITRATE`, `DOWNLOAD_VIDEO_HEIGHT_MAX`, `GIF_QUALITY`.
## Alternatives
### Open Source
- [[app-youtubedl-material]] — GUI web pour yt-dlp avec gestion de playlist, abonnements
- [[app-metube]] — Interface web simple pour youtube-dl / yt-dlp
- **yt-dlp** (CLI) — Le moteur utilisé par la plupart des alternatives, à utiliser seul
- **gallery-dl** — Spécialisé dans les galeries d'images (Pixiv, Twitter, Danbooru)
### Propriétaires
- **y2mate.com**, **savefrom.net** — Sites tiers, pistés et bourrés de pubs
- **4K Video Downloader** — Application desktop propriétaire (free trial only)
- **SnapSave** — Proxy web qui n'est PAS un service self-hosted
## Sécurité
- Activer `API_KEY` pour restreindre l'accès en mode privé
- Ne **jamais** exposer Cobalt sur Internet sans rate-limiting (risque d'abus)
- Les cookies YouTube doivent être **régulièrement renouvelés** (expiration rapide)
- Activer HTTPS via un reverse proxy ([[app-caddy]], [[app-nginx]])
- Cobalt ne stocke pas les vidéos après téléchargement : vérifier les logs si besoin de conformité RGPD
- ⚠️ Télécharger du contenu protégé par le droit d'auteur peut être **illégal** selon la juridiction et l'usage
## Ressources
- Site officiel : https://cobalt.tools/
- Code source : https://github.com/imputnet/cobalt
- Documentation API : https://github.com/imputnet/cobalt/blob/main/docs/protect-an-instance.md
- Instances : https://instances.cobalt.best/
## Pages Liées
- [[cat-downloads]] — Vue d'ensemble de la catégorie Downloads
- [[app-metube]] — GUI web pour yt-dlp
- [[app-youtubedl-material]] — Alternative avec plus de fonctionnalités
- [[app-caddy]] / [[app-nginx]] — Reverse proxy pour HTTPS
- [[recettes-docker-compose]] — Templates Docker