Tubefeeder / Pipeline

Watch YouTube, LBRY, and PeerTube videos in one place. Moved to https://gitlab.com/schmiddi-on-mobile/pipeline
https://mobile.schmidhuberj.de/pipeline
GNU General Public License v3.0
136 stars 15 forks source link

Ways to support creators besides watching ads #27

Open EmanuelLoos opened 3 years ago

EmanuelLoos commented 3 years ago

I think it would be good to evaluate how to support creators besides watching ads because when watching a video in mpv the ads are blocked, which is good because they are not privacy friendly and they are annoying and to pay for an ad-free experience a Google account is needed, but which also means content creators get nothing when watching videos using mpv.

Cryptocurrency Donations (from a wallet or from mining)

Cryptocurrency might be more comfortable to use for automated or one-click donations than bank transfers. Tubefeeder could gather data about watched content locally including ratings from the user and based on that present a list to the user with suggested donations for channels that provide a donation address for cryptocurrencies the user chose. Not only can cryptocurrency be donated from a wallet, but also through mining. Especially anti-ASIC algorithms (like RandomX) might be interesting for that. This would help to keep cryptocurrency secure too as long as it is implemented rightly: Mining should be solo mining, not mining with a large mining pool and especially not "cloud mining". Sadly it's almost always one of the last two. This can potentially be dangerous for cryptocurrencies because mining is the core coordination process that makes sure the blockchain is as it should be with only legitimate transactions getting approved. The cryptographic puzzle randomizes who gets to add his/her block to the blockchain. This probability, however, is not liked by miners who actually want to earn more money from mining then the electricity costs (and want to be able to rely on that). Mining pools consist of many miners and pay out smaller amounts more often. The problem is: They centralize what makes cryptocurrencies decentral and secure, they introduce a central point of failure, the one thing cryptocurrencies are there to stop. However, when cryptocurrency mining is used as replacement for ads ti is not that much of a problem that large amounts are payed out less often so this could help make cryptocurrencies more decentral while providing an easy to use alternative to ads. It is not done very often because cryptocurrency mining software should always be free software (and often comes with a copyleft license like the GPL) so no one alone has the power of deciding how it may or may not be used, changed, etc. (Of course this can be circumvented by rewriting the whole mining software or running the software somewhere and only sending the things to be calculated to the client (if it even needs to be circumvented because of a copyleft license). A few sites on the web are doing that. However, that is not how it should work.)

There are some things to keep in mind though:

Minimizing costs for creators

This could be done by

Torrent- or ZeroNet-based ways to distribute content

This can help keep server costs low but there are some legal issues. Since every user is automatically distributing content to other users, every user is also responsible for the distributed content. If it, for example, infringes copyright this can get very expensive (can often be pushed up to a few hundred dollars or euros for one music track per user AFAIK) and the RIAA (which also tried to take down youtube-dl but luckily public access to youtube-dl was restored after a letter from the EFF to GitHub on the behalf of youtube-dl's maintainers) and others are or where taking full advantage of it. Instead of mass lawsuits the RIAA now partners with ISPs to censor websites containing copyrighted material. (The Wikipedia articles about file-sharing have issues, see these talk pages: [1] [2] [3])

Converting videos

For example for the free video codec AV1 there are multiple encoders of which some are slow (encoding takes a few days for a short video) and produce high quality results (like libaom), others are fast (almost real time) and produce low quality results (like SVT-AV1). I am not completely sure about the legal aspects here, but I think since the user uploads the encoded video it can get legally harmful for the user if the originally uploaded video wasn't uploaded legally or wasn't uploaded under a license made for that.

Rendering computer animations

Rendering computer animations (like Blender Open Movies) can take much computing power. It could help creators if these are rendered by the users. I am not completely sure about the legal aspects here, but I think since the user uploads the rendered video it can get legally harmful for the user if the original computer animation wasn't provided legally.

Upscaling (computer animations, cartoons, drawings, ...)

With an AI upscaling software (like waifu2x) images (or video frames) can be upscaled to look good at higher resolutions. I wouldn't recommend this for normal recorded videos and especially not for news as I think these should represent what was really recorded though. I am not completely sure about the legal aspects here, but I think since the user uploads the upscaled video it can get legally harmful for the user if the originally uploaded video wasn't uploaded legally.

Schmiddiii commented 3 years ago

I do not know how Tubefeeder could help. Please give more information about how it could.

Ads

youtube-dl as a experimental feature --include-ads which would download ads as well. I do not know whether this would also support the creator.

Crypto Currency Donations

You would probably like something similar to brave. You suggest logging how long a user has watched a channel. This could be done, but:

Minimizing Cost

Distribute content

I really do not know how Tubefeeder could help, except supporting those platforms. Furthermore YouTube has to pay for the servers and they probably do not pay their creators more because of torrenting the videos.

Converting Videos, Rendering computer animations, Upscaling

This is probably a feature only a few channels would profit from. These channels probably already have some page describing how you can help them, this is probably very specific. Tubefeeder probably could not help.

EmanuelLoos commented 3 years ago

youtube-dl as a experimental feature --include-ads which would download ads as well. I do not know whether this would also support the creator.

Probably not. Unless youtube-dl lets Google track its users too. I don't like ads very much, even if the privacy of the user is preserved they are still annoying and can often be manipulating. However, without alternatives content creators will get nothing.

You would probably like something similar to brave.

Maybe similar but not the same. Unless the user buys cryptocurrency the only way for a user to support content creators in Brave is watching "privacy-respecting" ads from Brave or turning off Braves ad blocker (which blocks non-Brave ads). This would be different: Cryptocurrency Mining instead of ads. The block reward could be paid out directly to the content creators wallet avoiding transaction fees. Small-scaled solo mining would also help keep Cryptocurrencies decentral and secure in contrast to pool mining or cloud mining.

Many user may like to support other channels that they might not watch too long, for example a channel that might only upload once every month. Logging would maybe give a approximation, but everyone probably knows what channels they watch would like to support.

The decision should always be up to the user, of course. Tubefeeder could provide a list with suggestions to make that decision easier. It could let the user choose with how much percent of the unused CPU/GPU power it should mine for which channels for the next ... usage hours.

I really do not know how Tubefeeder could help, except supporting those platforms.

Exactly like you wrote: By supporting these platforms with P2P functionality. (NewPipe doesn't support peer-to-peer for example) But as it helps minimize server costs for creators hosting their own PeerTube instance I included it in this list.

Furthermore YouTube has to pay for the servers and they probably do not pay their creators more because of torrenting the videos.

You are right, this really shouldn't be done:

Converting Videos, Rendering computer animations, Upscaling This is probably a feature only a few channels would profit from.

I see that quite differently. Converting Videos would be something all channels could profit from if they are distributing their video using server-side software or decentral networks supporting that. This would help YouTube alternatives perform better convincing more channels move away from YouTube to self-hosted and/or decentral alternatives. Rendering and Upscaling would be a bit more specific but I think it would still be worth it.

These channels probably already have some page describing how you can help them, this is probably very specific.

I don't think any channel would do this that way as it would be to complex for normal users without a software that knows exactly what to do.

I do not know how Tubefeeder could help. Please give more information about how it could.

Tubefeeder probably could not help.

Tubefeeder could help by integrating these features so every normal user can use them to support channels by simply clicking a button in the UI. If it is that easy maybe enough users would do it to cover the costs for producing content and payout at least as much money to content creators as YouTube does.

Schmiddiii commented 3 years ago

I believe we might think a little bit outside the scope of Tubefeeder, e.g. P2P should be implemented in youtube-dl.

Maybe something easy would also help, e.g. filtering out donation links and crypto-adresses from the description and show them to the user.

Maybe crypto-adresses can be clickable in future, opening a external program mining for the channel.

EmanuelLoos commented 3 years ago

I believe we might think a little bit outside the scope of Tubefeeder, e.g. P2P should be implemented in youtube-dl.

Yes and no, it would be good if it was implemented by youtube-dl (though PeerTube has an API too, Tubefeeder could also use that in combination with any torrent software) but the user should be able to turn it on or off in the ui if it is implemented (possible legal trouble I explained above, Tor doesn't support UDP, etc).

Maybe something easy would also help, e.g. filtering out donation links and crypto-adresses from the description and show them to the user.

Yes, I think that would help.

Maybe crypto-adresses can be clickable in future, opening a external program mining for the channel.

You are right, a seperate extra program doing that would be better.

Schmiddiii commented 3 years ago

Regarding the P2P, I think we should put that on hold until youtube-dl implements such a thing.

Regarding the cryptocurrencies, do you know any software that would work. Is it even possible mining for a address you do not have control over? I am asking because I have never done anything with cryptocurrency.

EmanuelLoos commented 3 years ago

Regarding the cryptocurrencies, do you know any software that would work. Is it even possible mining for a address you do not have control over? I am asking because I have never done anything with cryptocurrency.

Here is an example for solo mining to a Monero address. I don't know any GUI for managing solo mining to someone else's wallet though.

Schmiddiii commented 3 years ago

One Year seems pretty slow. Will still add filtering donation adresses and cryptocurrency adresses from the description. Please do not expect the feature any time soon as this is pretty far down my todo list in comparison to the other issues.

EmanuelLoos commented 3 years ago

One Year seems pretty slow.

It gets even slower because the computer of a user normally won't do mining at full CPU power 24/7. However, the block reward is pretty big (will soon be constantly 3 XMR) and if lets say 1000 users were mining, there would be a payout to a creator every few days. Also 1 year doesn't mean it will take everyone one year from start, but that with this mining hashrate someone is likely to find around one block per year, it would also be possible that someone e.g. finds his/her first one after a few days/months or two or three years or that someone finds 2 or 3 blocks in one year. Actually, this is the very reason why mining pools exist: They promise faster but smaller payouts making the money someone gets out of mining more predictable by centralizing much mining power at one single point of failure which centralizes mining (which is made to keep the cryptocurrency secure through decentralization) under the users of the pool quite much which has the potential to harm cryptocurrencies. Mining in the way I recommended wouldn't only help supporting creators but also improve the security and decentralization of the mined cryptocurrencies.

Please do not expect the feature any time soon as this is pretty far down my todo list in comparison to the other issues.

It is always your choice as it's your time. :-) I am only sharing my thoughts with you responding to the Readme.