Laclin Home Contact Xfce4 tabsets Video tools Bundled distros BEWorld Proxy tricks Coder Dansu Gitea repos Source tree SysInfo

1. Introduction.

This page will dis­cuss the view­ing, down­load­ing, and/or edit­ing of videos. The scope will be both Laclin and other Linux distros. The tar­get audience will be Old Coders.

Presently, there are just notes on a couple of FOSS tools and copy­right law.

2. youtube-dl.

To down­load YT videos, Laclin uses and recom­mends a CLI pro­gram named youtube-dl. youtube-dl can be in­stall­ed in most Linux distros. Details are beyond the scope of this page.

3. minitube.

There's an unre­la­ted and very nice GUI named “minitube” that can browse and the­o­re­ti­cal­ly down­load YT videos. However, downloads require that the pro­gram be recom­piled and this part isn't work­ing in Laclin regard­less.

Laclin uses and recom­mends minitube for YT browsing. It can also be used to assist with downloads as fol­lows.

There's a right-click oper­a­tion labeled “Open the YouTube Page”. If you stum­ble across a YT video in minitube that you'd like to down­load, use that feature to open the YT page, copy the page URL, and run youtube-dl at the CLI level using the page URL as a par­am­e­ter.

If your copy of youtube-dl is up to date, this should get you a down­load­ed copy of the video.

minitube comes stand­ard with Laclin. However, it may break in the future due to changes in YT APIs.

minitube should be in the repos for some distros. As of Fall 2021, there was a home­page at the fol­low­ing link as well. The link may have broken since then:

https://flavio.tordini.org/minitube

Your phone or window is too narrow for the image. If it's a phone, try rotating the phone or switching to a PC. Or click here to go to a copy that may be zoomable.
 Minitube running in Laclin
Minitube running in Laclin

4. YouTube down­load legal issues.

This part isn't legal advice and may be mis­taken in places. Comments to this email address are welcome: ip at oldcoder.org

Intellectual property rights-holders try to con­flate copyright law and licenses. The two things aren't the same.

The take-away in the context of YouTube is that if YouTube — or any web­site — offers a video to the general public for view­ing in a web browser and a rights-holder doesn't object to that, the rights-holder argu­ab­ly has little right to object to the use of youtube-dl, minitube, or any pro­gram to down­load the video.

The problem for rights-holders is that copy­right law doesn't include the con­cept of a time in­ter­val.

What rights-holders would like to do is state that it's legal for you to down­load a video for the time need­ed to watch it but not to keep it for a longer time in­ter­val.

That type of rule is en­force­able at the civil lit­i­ga­tion level as a license issue. We don't be­lieve that, as of 2021, copy­right law in any major nation makes any pro­vi­sion for time-lim­it­ed possession of copies.

In the U.S., some provisions of DMCA seem to be attempts to do an end run around this point. We're not certain that those provisions are valid in the context of videos that are offer­ed to the public.

Not when the primary difference between a permitted down­load and a prohibited down­load is a time limit on pos­ses­sion.

In short, we be­lieve that youtube-dl, minitube in down­load mode, and other FOSS tools that can down­load videos offer­ed to the public are, or should be, perfectly legal, both to possess and to use.

Distribution of videos down­load­ed by such tools is another matter. It can be quite illegal to dis­tri­bute videos once you've down­load­ed them.

5. More about minitube.

As of 2021, the default mode for minitube is to permit downloads of only a small num­ber of YT videos. In theory, you can build a copy of minitube that has full down­load capability. To do so, you just add the setting shown be­low to the qmake com­mand line that's used at build con­fig­ure time:

qmake QMAKE_CXXFLAGS="-DAPP_DOWNLOADS"

Note: This may or may not work in the future. The problem is that it doesn't com­plete­ly work now. When we tried it, we observed the fol­low­ing error at runtime:

QObject::connect: No such signal Video::gotStreamUrl(QUrl)

© 1996-2022 OldCoder (Robert Kiraly)    |  Privacy policy    |  Contact   |  Notices