The free, open source video downloader!
No longer do you have to rely on shady websites, shoving tons of ads in your face to fulfil your downloady needs. No longer will you be held back by artificially crippled download speeds, login-/paywalls or even watermarks.
Tubio in of itself is not a downloader, but a GUI for the widely known, open-source, public-domain cli yt-dlp. Thanks for this awesome tool! You guys are heroes! (Obviously, same goes for youtube-dl, which yt-dlp is based on) The goal of Tubio is to make this awesome software more accessible. Not everyone knows how to use the command line!
It`s quite easy! Make sure the Tubio service is running in the background, navigate to http://localhost, paste in your video/music url and chances are that it will work!
This is because the set of supported websites is extremely large! See here: supportedsites.md
When your download finished, just click "download" and have fun!
The backend is a C++ webserver, powered by casenta/mongoose.Thanks, you guys are awesome! The connection is not encrypted, but that`s okay because it is intended for localhost only. Mongoose does support ssl, so you can always add it, if you fancy it.
The frontend is a nuxt.js web application.
Have a sneak peak!
See this json file (config.json). Most of these values are configurable in the web-interface, but not all, such as the port.
{
"access": {
"enable_whitelist": true,
"only_allow_localhost": false,
"whitelist": [
"127.0.0.1",
"192.168.1.12",
"192.168.1.14",
"192.168.1.10"
]
},
"downloader": {
"cachedir": "dlcache",
"max_dlrate_per_thread": "100M",
"num_threads": 10
},
"general": {
"show_console": true
},
"httpServer": {
"polling_rate": 100,
"port": "80",
"rootdir": "./frontend"
},
"logging": {
"autosave_interval": 20,
"logfile_json": "log.json",
"logfile_text": "log.txt"
}
}
Tubio hosts a webserver, after all. It is intended to be used for localhost only (since no encryption), but no one is preventing you from unticking localhost only
under /settings
. Then you could connect to it via your local IPv4 address (such as 192.168.1.12
) or even over the global WAN! However, regarding WAN, i would strongly advise against such a careless setup.
It wouldn't be that complicated to enable TLS. You'd have to install and link libcryptopp
, obtain a certificate + key, and pass them to the mongoose webserver. But that would break that whole "compiles without any dependencies thing". See the mongoose docs TLS page for instructions. If you implement this cleanly, like with a special make target, a merge request would be greatly appreciated.
!!! IMPORTANT Tubio does NOT manage sessions or accounts! Everyone using your Tubio instance will see all your downloads and vica versa.
If you opt for unleashing Tubio on your LAN, i would strongly recommend enabling the whitelist! You can do this either in the config.json
or in /settings. Either way, it is a json-array of strings which represent IPv4 addresses.
- Clone this repository and build it with cmake
- Create some folder on your system. This will be the installation folder.
- In this folder, dump the contents of /Tubio/.
- Install python3 and then yt-dlp via
pip install yt-dlp
. - Launch the tubio executable
- Enjoy <3
This happens as there almost always is some post-processing to do after downloading. Like, audio-extracting and/or video recoding. If you're downloading a video this may take a while, as it may be converting webm to mp4.
First thing to do: Verify that are using the latest version of yt-dlp. The team behind its upstream, youtube-dl, are quite fast adjusting the downloading backend to changes in popular platforms, such as youtube. If your downloads still fail,
verify that yt-dlp is in fact capable of downloading the url you supplied by executing yt-dlp $url
, replacing $url
with your url. If this works, you can extract the tubio id of the url you just queued in /settings
, and then open <your-tubio-host>/downloadlog/<tubio-id>
to see the output stdout and stderr of the yt-dlp call. Then work from the error messages you see in there.
If it`s still not working, you`re out of luck. :( You may want to check youtube-dl compatible sites.
This can only be undone from localhost. Open Tubio via, and this is important, either localhost
or 127.0.0.1
and untick it again. If you can only ssh into the host, you can edit the config.json
itself and restart Tubio.
Sure it does. You just have to compile it yourself using cmake, and put yt-dlp.exe, ffmpeg.exe, ffplay.exe and ffprobe.exe in Tubios working directory (installation directory). You could then just launch it at startup.
You bet! That's what I'm mainly using it for :) Read this.
On your own risk! Tubio is NOT designed for this! Also do note that tubio does NOT manage sessions or accounts! Everyone accessing this instance can see everyones downloads and access the admin panel! Tubio is really designed for one user!
I do not. Tubio is a tool I originally made for myself only. I just thought it`s nice and worth sharing. I will address issues when I have time. Feel free to submit issues and I will have a look when I get to it. :)
This is an alpha-version. What did you expect? :D
Please address the awesome team at youtube-dl, as they make the downloading-backend: github.com/ytdl-org/youtube-dl/issues. The downloader uses (yt-dlp), which is based on youtube-dl.
I do NOT endorse illegal downloads in any way, shape, or form. Tubio is a tool to download media from legal sources! Use Tubio at your own discretion! Neither do i provide ANY warranty in ANY way, shape, or form!
Tubio is distributed under the GNU General Public License v3.0. Please read the license file.