<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Self-Hosted on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/self-hosted/</link>
        <description>Recent content in Self-Hosted on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Wed, 10 Jun 2026 21:47:35 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/self-hosted/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>MeTube: Add a Browser Download Panel to yt-dlp</title>
        <link>https://knightli.com/en/2026/06/10/metube-yt-dlp-web-ui/</link>
        <pubDate>Wed, 10 Jun 2026 21:47:35 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/06/10/metube-yt-dlp-web-ui/</guid>
        <description>&lt;p&gt;MeTube is a self-hosted project that gives &lt;code&gt;yt-dlp&lt;/code&gt; a browser interface. Its value is straightforward: it moves a download workflow that normally requires commands, parameters, paths, and troubleshooting into a Web panel.&lt;/p&gt;
&lt;p&gt;For people already familiar with &lt;code&gt;yt-dlp&lt;/code&gt;, MeTube is not a replacement. It is a shell that is easier to use day to day and easier to share with others. For people who do not want to touch the command line, it reduces video downloading to &amp;ldquo;paste a link, choose a format, submit the task.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;what-metube-is-good-for&#34;&gt;What MeTube Is Good For
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;yt-dlp&lt;/code&gt; is powerful. It supports YouTube and many other video sites, and it can handle audio, subtitles, thumbnails, playlists, and format selection. But command-line tools still have clear friction points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are many parameters, and common settings often need to be memorized or saved as scripts;&lt;/li&gt;
&lt;li&gt;Download paths, file names, and audio/video formats are easy to mistype;&lt;/li&gt;
&lt;li&gt;It is hard to ask family members or a small team to learn the command line;&lt;/li&gt;
&lt;li&gt;Channel subscriptions, batch downloads, and background queues are easier to manage through a Web panel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MeTube brings these abilities into the browser. It still calls &lt;code&gt;yt-dlp&lt;/code&gt; in the background, while the front end provides task submission, queue management, quality selection, and configuration entry points.&lt;/p&gt;
&lt;h2 id=&#34;three-download-scenarios&#34;&gt;Three Download Scenarios
&lt;/h2&gt;&lt;p&gt;Common MeTube usage falls into three scenarios.&lt;/p&gt;
&lt;p&gt;The first is single-video downloading. Paste the link, choose a video quality or audio-only mode, and submit the task. It can also handle subtitles, cover thumbnails, and other extra files.&lt;/p&gt;
&lt;p&gt;The second is playlist and channel downloading. After you enter a playlist or channel link, MeTube fetches the item list. You can pick specific entries or add everything to the queue. This is useful for archiving courses, podcasts, open classes, or video reference material.&lt;/p&gt;
&lt;p&gt;The third is automatic subscription downloading. After subscribing to a channel or playlist, MeTube checks for new content at a configured interval and adds updates to the download queue automatically. The default interval is 60 minutes, and you can adjust it based on server load and update frequency.&lt;/p&gt;
&lt;h2 id=&#34;docker-deployment&#34;&gt;Docker Deployment
&lt;/h2&gt;&lt;p&gt;The simplest deployment method is Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This command maps the container&amp;rsquo;s &lt;code&gt;8081&lt;/code&gt; port to the host and mounts the host download directory to &lt;code&gt;/downloads&lt;/code&gt; inside the container. If you already use Docker on a NAS or home server, you can switch to &lt;code&gt;docker-compose&lt;/code&gt; and manage it together with reverse proxy, storage, and permission settings.&lt;/p&gt;
&lt;h2 id=&#34;managing-yt-dlp-options&#34;&gt;Managing yt-dlp Options
&lt;/h2&gt;&lt;p&gt;MeTube manages &lt;code&gt;yt-dlp&lt;/code&gt; options in three layers, from stable defaults to temporary overrides.&lt;/p&gt;
&lt;p&gt;The first layer is global configuration. You can use &lt;code&gt;YTDL_OPTIONS&lt;/code&gt; to define default behavior for all download tasks, or point it to a JSON file. When the file changes, it can be reloaded automatically without restarting the container.&lt;/p&gt;
&lt;p&gt;The second layer is presets. A preset is a named option bundle, such as &amp;ldquo;embed subtitles,&amp;rdquo; &amp;ldquo;skip SponsorBlock segments,&amp;rdquo; &amp;ldquo;limit download speed,&amp;rdquo; or &amp;ldquo;audio only.&amp;rdquo; You select presets from the interface when downloading, and multiple presets can be combined.&lt;/p&gt;
&lt;p&gt;The third layer is per-task overrides. For temporary needs, you can enter JSON override options directly in the interface. This layer has the highest priority. The feature is disabled by default, and you should think through permissions before enabling it because it lets users pass arbitrary &lt;code&gt;yt-dlp&lt;/code&gt; options into the container.&lt;/p&gt;
&lt;p&gt;The priority is simple: per-task overrides beat presets, and presets beat global configuration.&lt;/p&gt;
&lt;h2 id=&#34;file-naming-and-directories&#34;&gt;File Naming and Directories
&lt;/h2&gt;&lt;p&gt;MeTube inherits the file name template capability from &lt;code&gt;yt-dlp&lt;/code&gt;. Common settings include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OUTPUT_TEMPLATE&lt;/code&gt;: controls file names for single videos;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OUTPUT_TEMPLATE_PLAYLIST&lt;/code&gt;: controls playlist downloads, usually grouped by playlist name;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OUTPUT_TEMPLATE_CHANNEL&lt;/code&gt;: controls channel downloads, usually grouped by channel name;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AUDIO_DOWNLOAD_DIR&lt;/code&gt;: stores audio files in a separate directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you download a lot, you can place the temporary directory on an SSD to speed up merging and transcoding. You can also use &lt;code&gt;tmpfs&lt;/code&gt;, but memory-backed storage may affect resume support, so it is better suited to short tasks than long large-file downloads.&lt;/p&gt;
&lt;p&gt;MeTube also supports custom directories. Once enabled, the download interface shows a directory selector, and entering a new directory name creates and saves files there. For NAS users, this is more convenient than typing paths by hand and makes it harder to scatter files everywhere.&lt;/p&gt;
&lt;h2 id=&#34;browser-extensions-and-integrations&#34;&gt;Browser Extensions and Integrations
&lt;/h2&gt;&lt;p&gt;MeTube is not limited to opening the panel and pasting links. It has Chrome and Firefox extensions that let you send a video page to MeTube from the right-click menu. iOS users can submit links from Safari through Shortcuts. Bookmark scripts can also send the current page address from almost any webpage.&lt;/p&gt;
&lt;p&gt;If you use browser extensions, you need to handle CORS and HTTPS properly. A common setup is to put Nginx, Caddy, or Apache in front of MeTube as a reverse proxy, expose HTTPS externally, and complete the cross-origin configuration there.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;MeTube is best suited to these scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You have a NAS, home server, or long-running Docker host;&lt;/li&gt;
&lt;li&gt;You want a unified video download entry point;&lt;/li&gt;
&lt;li&gt;You need to automatically archive YouTube channels or playlists;&lt;/li&gt;
&lt;li&gt;You find the &lt;code&gt;yt-dlp&lt;/code&gt; command line too tedious but still want its capabilities;&lt;/li&gt;
&lt;li&gt;You want to give family members, colleagues, or a small team a download interface that does not require learning commands.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is less suitable for someone who only downloads a single video once in a while. In that case, a command line, desktop tool, or temporary script may be lighter. MeTube&amp;rsquo;s advantage is long-running service, queue management, subscription checks, and a unified entry point.&lt;/p&gt;
&lt;h2 id=&#34;boundaries-to-keep-in-mind&#34;&gt;Boundaries to Keep in Mind
&lt;/h2&gt;&lt;p&gt;First, MeTube is only Web-based management for &lt;code&gt;yt-dlp&lt;/code&gt;. Its download capability still depends on &lt;code&gt;yt-dlp&lt;/code&gt; itself. Site rule changes, login requirements, regional restrictions, and unavailable formats ultimately come back to &lt;code&gt;yt-dlp&lt;/code&gt; support.&lt;/p&gt;
&lt;p&gt;Second, consider permissions before opening it to multiple users. Per-task overrides, custom directories, and public access can all introduce misuse or security risks. A steadier approach is to keep it on the LAN; if public access is needed, add a reverse proxy, authentication, and access restrictions.&lt;/p&gt;
&lt;p&gt;Third, plan download directories in advance. Playlists, channels, audio files, and temporary files should be separated, otherwise the directory will become messy very quickly.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;MeTube has a clear role: it is not a new download engine, but a way to turn &lt;code&gt;yt-dlp&lt;/code&gt; into a long-running Web download center. For NAS users, home servers, and people who need to archive video material in batches, it is steadier than typing commands every time and easier to hand off to others.&lt;/p&gt;
&lt;p&gt;If you already use Docker and often need to download video, audio, subtitles, or channel content, MeTube is worth trying as a resident tool.&lt;/p&gt;
&lt;p&gt;Reference: &lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/2045898393927603329?share_code=Y0OaTnUufqSR&amp;amp;utm_psn=2046579775909765249&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Original Zhihu column&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
