Skip to main content

MeTube smart home integration, free and open source

MeTube integration for Gladys Assistant

MeTube in Gladys: download queue, finished and failed downloads, add a video from a scene.

Bring your MeTube server (the self-hosted web interface of yt-dlp, to download a video or a playlist on demand) into Gladys, over your local network: the download queue with its progress, the finished and failed downloads on a dashboard, scenes that react when a download ends or fails, and an action that adds a video to MeTube.

The integration was tested against a real MeTube 2026.10.23 (the official Docker image, downloading a real public-domain video), not yet in a real Gladys installation: feedback is welcome on the Gladys forum or in the issues.

Download only what you have the right to: videos in the public domain, under a free license, or your own.

What you need​

  • Gladys Assistant 5.2.0 or later.
  • A MeTube server, reachable from Gladys (same network), on the port of its web interface (8081 by default).
  • When a reverse proxy in front of MeTube asks for a password (MeTube itself has none), that user name and password.

Set up​

  1. Install the integration from the Gladys catalog.
  2. In Configuration, enter the Address of MeTube (for example 192.168.1.2:8081; without a port, 8081 is used). If MeTube runs with a URL_PREFIX, add it: 192.168.1.2:8081/metube. Behind a reverse proxy that asks for a password, fill the User name and Password too.
  3. Save, then click Test the connection: the message under the button gives the versions of MeTube and yt-dlp, and the downloads in progress, waiting, finished and in error.
  4. Open the Discover tab: one device for the server. Click Add, pick a room and save.

Options:

  • Refresh interval: 10 seconds to 2 minutes (30 seconds by default). MeTube writes a line in its own log at each reading.
  • Language of the feature names: the names given to the features when the device is added (French by default), and the language of the messages of the scene action.

The integration reads the history of MeTube (/history, the very list its web page shows) and adds links through /add, as the web page does. It never deletes a download nor a file.

The device​

One device, MeTube followed by the address of the server:

FeatureWhat it gives
Online1 when MeTube answers, 0 otherwise
Downloads in progressdownloads running (preparing, downloading)
Downloads waitingwaiting for a free slot, or for the Start button
Downloads finishedfinished downloads in the history of MeTube
Downloads in errorfailed downloads in the history of MeTube
Progress of the current downloadin percent, 0 when nothing downloads
Download speedin MB/s, all downloads together
Current downloadits title, as text (“Nothing downloading” when idle)
Last download finishedits title, as text

The finished and failed downloads are the ones MeTube keeps in its history: when you clear them in MeTube, the figures go down.

Dashboard​

The MeTube downloads widget shows three tiles (in progress, waiting, in error), the queue (title, progress and speed, or why it waits), and the last downloads finished or failed (title, file or error, size). Two buttons:

  • Add a video: a form with the link and the quality; the video is added to MeTube and starts at once.
  • Start: shown only when downloads added without auto start wait for the Start button of MeTube; it starts them all.

Add it from the dashboard editor; it needs no setting, and it works before the device is added.

Scenes​

Triggers​

  • MeTube download finished: a download has just finished, whoever added it (the web page of MeTube, its browser extension, Gladys). Information passed on to the actions: the title, the link of the video, the file name and the size in MB.
  • MeTube download failed: a download failed (link not supported, video unavailable or private, yt-dlp error). Information: the title, the link and the error message.

Each download is announced once, even after a restart of the integration. What MeTube already had in its history when its address was entered is not announced; what ended while the integration was stopped is announced when it starts again. The same link downloaded again is announced again.

Actions​

  • Add a video to MeTube: adds a video or a playlist to the queue of MeTube, started at once. Fields: the Link (a variable of an earlier step works too) and the Quality: best video, 1080p, 720p, 480p, or audio only (MP3). When MeTube refuses the link, the action fails with its message.

Scene ideas​

  • When a MeTube download finishes, send yourself a message: “{title} is ready ({size_mb} MB)”.
  • When a download fails, send the error message, so you can check the link or update yt-dlp.
  • Every Sunday at 8 am, add the link of a weekly public-domain show or podcast in audio only, to listen to it later.

Troubleshooting​

  • “MeTube does not answer”: check the address and the port (8081), and that Gladys can reach the server (same network, firewall).
  • “No MeTube at this address”: another service answers on this port, or MeTube runs with a URL_PREFIX missing from the address.
  • “User name or password refused or missing”: a reverse proxy asks for a password; enter its user name and password.
  • “The address redirects”: a reverse proxy sends to a login page or to HTTPS; enter the direct address of MeTube on your network.
  • “MeTube refused the link”: yt-dlp does not support the site, or the video is unavailable; the message of MeTube tells why.
  • More details: set the LOG_LEVEL of the integration to debug and open its logs.

Limits​

  • A download is seen at the next reading: within the refresh interval.
  • A download that MeTube clears from its history on its own (CLEAR_COMPLETED_AFTER) before the next reading is not announced.
  • At most 10 events of each kind per reading: beyond (a burst of downloads), the downloads are counted, not announced.
  • The integration does not delete downloads nor files, does not cancel a download, and does not manage the subscriptions of MeTube. To follow YouTube channels and playlists automatically, see the Pinchflat integration.
  • A reverse proxy with a login page (OAuth, Authelia…) is not supported: only a basic authentication (user name and password).
  • Not affiliated with MeTube, yt-dlp or any video site.

Configuration settings​

These are the settings MeTube asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
MeTube serversectionNoAddress of the MeTube web interface. The integration reads its download queue and adds the links you send it from Gladys.
AddressstringNoIP address or name of the server, with the port of the web interface (8081 by default) and the URL_PREFIX if MeTube has one.
User namestringNoOnly when a reverse proxy in front of MeTube asks for a password (MeTube itself has none).
PasswordsecretNoPassword of the reverse proxy, with the user name above.
Refresh intervalselectNoHow often the queue of MeTube is read: progress, finished and failed downloads.
Language of the feature namesselectNoNames given to the features when the device is added, and the texts sent by the integration.

How to install MeTube in Gladys​

  1. In Gladys, open Integrations: MeTube appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-metube:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/guim31/gladys-metube.

MeTube requires Gladys >=5.2.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

MeTube is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by guim31, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂