Installer MeTube avec Docker

Au sommaire :

  • 1-Qu'est-ce que MeTube ?
  • 2-Prérequis
  • 3-Déploiement
  • 4-Télécharger des contenus

1-Qu'est-ce que MeTube ?

MeTube est une interface web pour le célèbre youtube-dl qui va vous permettre de télécharger les contenus de Youtube.

Balek les mamies!!!!!

Vous allez pouvoir télécharger les vidéos au format MP4, les pistes audio au format MP3/WAV/OPUS, les playslist au format M4U et les miniatures des vidéos (thumbnail).

C'est du même acabit que les sites comme Freemake ou SaveFrom sauf que c'est héberger chez vous, que les fichiers sont stockés sur votre serveur et que vous pouvez télécharger sur votre poste client en un clic.

GitHub - alexta69/metube: youtube-dl web UI
youtube-dl web UI. Contribute to alexta69/metube development by creating an account on GitHub.

2-Prérequis

Il vous faudra une machine virtuelle sous Ubuntu Server 22.04 LTS.

Voici le guide pour ceux qui veulent repartir de zéro.

Virtualiser Ubuntu Server 22.04 LTS sur Proxmox VE
Guide d’installation de Ubuntu Server 22.04 LTS sur Proxmox VE avec mes meilleurs réglages.

Si vous voulez gagner du temps, utilisez un template cloud-init.

Initialiser vos machines virtuelles avec Cloud-init sur Proxmox VE
Guide d’installation de Cloud-Init qui va vous permettre d’automatiser vos déploiements

Ensuite, suivez ce guide pour installer Docker, Docker Compose et préparer vos variables d'environnement.

Installer Docker
Guide d’installation de Docker.

Enfin, pour exposer et sécuriser l'application sur l'internet public, il vous faudra déployer Traefik et Authelia.

Installer Traefik avec Docker
Guide d’installation de Traefik.
Installer Authelia avec Docker
Guide d’installation de Authelia.

3-Déploiement

Commencez par créer un dossier "docker" à la racine du dossier utilisateur"

mkdir -p ~/docker

Créez un fichier nommé "compose.yml"

touch ~/docker/compose.yml

Ouvrez le fichier "compose.yml" et copiez cette configuration.

  metube:
    image: ghcr.io/alexta69/metube
    container_name: metube
    volumes:
      - ${DOWNLOADS}:/downloads
    ports:
      - 8081:8081
    restart: unless-stopped

Ainsi que la configuration avec Traefik et Authelia.

Cochez la section ports si vous ne souhaitez pas accéder à l'application en local.

Ensuite, si vous avez suivi les guides de Traefik et Authelia, il vous faudra ajouter les labels adéquat pour pouvoir exposer l'application sur l'internet public et activer l'authentification SFA ou MFA.

version: "3.9"

networks:
  web:

services:

  traefik:
    container_name: traefik
    image: traefik:latest
    restart: always
    network:
      web:
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${APPDATA}/traefik/logs:/logs
      - ${APPDATA}/traefik/traefik.yml:/traefik.yml
      - ${APPDATA}/traefik/dynamic.yml:/dynamic.yml
      - ${APPDATA}/traefik/letsencrypt/acme.json:/acme.json
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik-dash.entrypoints=websecure
      - traefik.http.routers.traefik-dash.rule=Host(`traefik.<votredomaine>.ovh`)
      - traefik.http.routers.traefik-dash.service=api@internal
      - "traefik.http.routers.traefik.middlewares=middlewares-basic-auth@file"
      
  authelia:
    image: authelia/authelia
    container_name: authelia
    volumes:
      - ${APPDATA}/authelia:/config
    networks:
      - web
    labels:
      - traefik.enable=true
      - traefik.http.routers.authelia.entrypoints=websecure
      - traefik.http.routers.authelia.rule=Host(`authelia.<votre_nom_de_domaine>`)
      - traefik.http.routers.authelia.tls.certresolver=letsencrypt
    ports:
      - 9091:9091
    restart: unless-stopped
    healthcheck:
      disable: true
    environment:
      - TZ=${TZ}

  metube:
    image: ghcr.io/alexta69/metube
    container_name: metube
    volumes:
      - ${DOWNLOADS}:/downloads
    networks:
      - web
#    ports:
#      - 8081:8081
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.metube.entrypoints=websecure
      - traefik.http.routers.metube.tls.certresolver=letsencrypt
      - traefik.http.routers.metube.rule=Host(`metube.<votre_nom_de_domaine>`)
      - traefik.http.routers.metube.service=metube-svc
      - traefik.http.services.metube-svc.loadbalancer.server.port=8081
      - 'traefik.http.routers.metube.middlewares=chain-authelia@file'

Comme d'habitude, suivez les parties 6 et 7 du guide de Traefik pour ouvrir les ports de votre box internet et ajouter les entrées DNS pour pouvoir accéder à l'application.

Et n'oubliez JAMAIS :

  • D'éditer le fichier "configuration.yml" de Authelia.
  • D'ajouter le nom de domaine de l'application
  • De redémarrer l'application avec "docker compose restart authelia" pour que la modification soit prise en compte.

Déployez l'application avec la commande suivante.

docker compose up -d

Si vous accédez à l'application, mes félicitations.

4-Télécharger des contenus

Sélectionnez le format que vous souhaitez puis cliquez, ajoutez le lien Youtube puis sur "Add".

Le fichier sera en cours de téléchargement.

Et lorsque le téléchargement sera terminer, il sera disponible dans le dossier "downloads" que vous avez indiqué dans le fichier compose.

Mais si vous souhaitez consommer le contenu de suite, cliquez sur l'icone de téléchargement.

Du Bachir Sarahoui avec un thé à la menthe, ça n'a pas de prix. Si vous aimez, c'est disponible sur Deezer.