Files
wiki/Catalogue-Self-Hosted/apps/app-couchtube.md
T
2026-06-09 18:40:21 +02:00

85 lines
3.9 KiB
Markdown

---
title: CouchTube
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, front-end, youtube, streaming, nodejs, typescript]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?q=couchtube]
---
# CouchTube 🛋️
> Front-end YouTube auto-hébergeable léger, écrit en Node.js/TypeScript, conçu pour les setups "couch" (TV, Raspberry Pi, basse consommation).
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/Victorique-67/couchtube |
| **GitHub** | https://github.com/Victorique-67/couchtube |
| **License** | MIT |
| **Langage principal** | TypeScript (Node.js) |
| **Étoiles GitHub** | 10 |
| **Dernière MAJ** | 2025 |
| **Catégorie** | [[cat-front-end]] |
## Description
CouchTube se positionne comme une alternative à [[app-invidious]] et [[app-piped]] pour YouTube, mais avec un angle particulier : la consommation depuis un canapé, d'où son nom. L'interface est pensée pour les **grands écrans** et les télécommandes (navigation au clavier, focus visible, gros boutons), ce qui le rend adapté à un Raspberry Pi branché sur une TV ou à un HTPC familial.
Écrit en Node.js avec TypeScript et probablement Express ou Fastify, CouchTube proxifie les flux vidéo via l'API YouTube (via Invidious ou Piped upstream) et propose une UI minimaliste sans tracking, sans recommandations algorithmiques, et sans la lourdeur du client web officiel. Le projet met l'accent sur la **simplicité de déploiement** : peu de dépendances, configuration légère.
⚠️ **Projet jeune** avec **bus factor 1** (un seul mainteneur principal), seulement ⭐10 étoiles. À envisager comme un outil complémentaire plutôt qu'une solution critique en production. La pérennité des API YouTube upstream reste le point fragile de tout l'écosystème des front-ends alternatifs.
## Installation
### Via Docker (recommandé)
```yaml
services:
couchtube:
image: ghcr.io/victorique-67/couchtube:latest
container_name: couchtube
restart: unless-stopped
ports:
- "3010:3000"
environment:
PORT: 3000
UPSTREAM_INSTANCE: "https://invidious.fdn.fr"
DEFAULT_QUALITY: 720p
DEFAULT_THEME: dark
ENABLE_Search: "true"
depends_on:
- invidious
```
### Installation manuelle
Cloner le dépôt, `npm install` ou `pnpm install`, configurer le fichier `.env` avec `UPSTREAM_INSTANCE` (instance Invidious ou Piped à utiliser comme backend), puis `npm run build` et `npm start`. Mettre derrière un reverse proxy ([[app-caddy]] ou [[app-nginx]]) avec HTTPS.
## Configuration
Variables d'environnement : `PORT` (port d'écoute), `UPSTREAM_INSTANCE` (URL de l'instance Invidious/Piped backend — obligatoire), `DEFAULT_QUALITY` (résolution par défaut), `DEFAULT_THEME` (clair/sombre), `ENABLE_SEARCH` (autoriser ou non la recherche), `HIDE_RECOMMENDATIONS` (masquer les suggestions en fin de vidéo). Aucune base de données requise, CouchTube est stateless.
## Alternatives
### Open source
- [[app-invidious]] — Le plus mature des front-ends YouTube
- [[app-piped]] — Alternative avec fonctionnalités étendues (playlists, sponsors)
- [[app-materialious]] — UI Material Design, riche en fonctionnalités
### Propriétaires
- YouTube (officiel) — Interface complète, mais tracking et pubs
## Sécurité
- Choisir une instance upstream (`UPSTREAM_INSTANCE`) de confiance — tout le trafic vidéo transite par elle
- Pas de comptes utilisateurs, pas de stockage de données sensibles
- Rate-limiting recommandé au niveau du reverse proxy
- HTTPS obligatoire (YouTube bloque les clients non-HTTPS)
- Surveiller les changements d'API YouTube qui peuvent casser les front-ends alternatifs
## Ressources
- Code source : https://github.com/Victorique-67/couchtube
- [[app-invidious]] (backend recommandé)
- [[app-piped]] (backend alternatif)
- Wiki front-ends YouTube : https://github.com/iv-org/documentation
## Pages Liées
- [[cat-front-end]]
- [[recettes-docker-compose]]
- [[app-invidious]]
- [[app-piped]]