Edit: After discussing it in the Matrix room with some people we ended with a middle ground: https://github.com/iv-org/invidious/issues/1554#issuecomment-741041928
I think removing the download feature of Invidious is a good idea.
First: Invidious isn't really meant for downloading content, people should use youtube-dl (or better, youtube-dlc), or whatever front-end for it they want.
Second: Allowing download mean that we also have to handle potential copyright claim (where instance owners basically have to disable the download for a video ID, manually (from what I know, one by one), in their configuration file).
Third: waste of bandwidth, waste of UI space, waste of development time (it's currently broken for example, meaning someone will have to spend time fixing that: #1550 ), waste of code...
Fourth: max quality is 720p (and the available qualities (360p-720p) are basically the worst of youtube since it's AVC+AAC), because invidious can't mux the output.
Basically, it's useless, but require stuff from everything (instances, bandwidth...), and everyone (developers, instance maintainers...).
I'm interested in what the community think though, so feel free to post your opinion.
Another thing is that videos aren't muxed (I think) so, the maximum resolution you can download at is 720p.
@FireMasterK Yep, true, I'll add that.
Just to help me understand this:
What is the difference in bandwidth between serving an embedded video in HTML and serving one as a file for download?
@CSDUMMI
Bandwidth: none. Bandwidth speed however:
To load a 10 minutes video in streaming, you basically need 10 minutes.
To download it... well you might need a second, meaning you have a bigger impact than users streaming content (you can download 100 hours of content in 1 hour, wasting 100 times the bandwidth a user streaming the content is using)
After discussing it in the Matrix room with some people we ended with a middle ground:
TL;DR: allow audio / video+audio download, disabled by default, cleaner UI
This is what needs to be done:
Move everything related to download to its own file (ping @matthewmcgarvey ) > Cleaner code
Put the whole download UI in a <detail> (idea and existing implementation by @julianfoad here) > Cleaner UI
Make download disabled by default > No more bandwidth speed waste on instances that aren't configured completely
Remove the message displayed when download is disabled > Cleaner UI
Stop proxying downloads, download from googlevideo > No more bandwidth speed waste
Remove the ability to disable download on certain video ID (IE: download is all or nothing) > Simpler code
Only display: the best audio only opus - the audio only aac > Simpler UI + Cleaner UI
If enabled with a (new) setting also display: the 360p video+audio - the 720p video+audio
(ping @saltycrys if you want to start working on that, might be a good idea to "Move everything related to download to its own file" first though)
If you are okay with that thumb up this comment, if not thumb down and explain in another comment.
Stop proxying downloads, download from googlevideo > No more bandwidth speed waste
I feel this should be an optional thing in the config, some instances may have a lot of bandwidth, or may not be charged for bandwidth (eg. Cloudflare's bandwidth alliance).
@FireMasterK In my opinion the bandwidth should be used for streaming as much as possible. Also, almost no instances can get more than 1Gbit, and a gigabit goes quickly with thousands of users.
Superseded by #1563
Most helpful comment
After discussing it in the Matrix room with some people we ended with a middle ground:
TL;DR: allow audio / video+audio download, disabled by default, cleaner UI
This is what needs to be done:
Move everything related to download to its own file (ping @matthewmcgarvey ) > Cleaner code
Put the whole download UI in a
<detail>(idea and existing implementation by @julianfoad here) > Cleaner UIMake download disabled by default > No more bandwidth speed waste on instances that aren't configured completely
Remove the message displayed when download is disabled > Cleaner UI
Stop proxying downloads, download from googlevideo > No more bandwidth speed waste
Remove the ability to disable download on certain video ID (IE: download is all or nothing) > Simpler code
Only display: the best audio only opus - the audio only aac > Simpler UI + Cleaner UI
If enabled with a (new) setting also display: the 360p video+audio - the 720p video+audio
(ping @saltycrys if you want to start working on that, might be a good idea to "Move everything related to download to its own file" first though)
If you are okay with that thumb up this comment, if not thumb down and explain in another comment.