With the current "YouTube Purge" news, the crypto community has been up in arms and it seems to be all anyone can talk about. It makes sense, as this is a space that prides itself on individual freedom and censorship resistance.
Sure this isn't the first time YouTube has removed specific content or perhaps all of a creators work, with little to no warning. But this time it affected the crypto community specifically,and it was pretty wide spread.
Due to this, many influential people in the space were calling for decentralized alternatives.
Which is great.
This is a wonderful time to highlight the decentralized social alternatives, like Steem (or the apps built on it), as we are solving part of this problem already, and working through the many obstacles that come with trying to build a decentralized social platform.
I have seen many doing so, sharing the name of Steem in conversations etc, our strong community is valuable in many ways.. and being a force of Steem promotion is one of them.
But there is one thing I have also noticed that I felt needed to be addressed;
Steem Is Not A Decentralized YouTube Replacement
No, it's really not.
Why Not?
Because Steem does not store videos on the blockchain, like it does with the text put into "posts". I say this as I am not sure many users know that. Which is ok, and to be expected.. as a user of a platform shouldn't have to understand every aspect of it to use it.
But I know for sure the many here do understand that, including individuals running video platforms on top of Steem. They most definitely know how it works.. they build on it after all.
You see the video platforms on Steem (like 3speak and Dtube) must store videos some way off chain, as the base blockchain storage does not work for them. Video is completely different than text.
The individuals who made these platforms, market them, and moderate them for sure know how they work, and therefore I find it quite baffling to see them stating anything to allude to the fact that they do provide a "Decentralized Alternative to YouTube"
Saying our name is great, attaching it to false claims is not
This is a great time for platforms built on Steem to show why they are a better alternative to centralized platforms censoring their users, 100%. But lying to them isn't a great way to start.
If we had a truly decentralized alternative to YouTube then there should have been a proposal put in for a massive budget to the SPS to get funding to advertise it on any site we could.. I would fully support this.
I mean what a time to have a complete decentralized option to the most talked about problem in the space currently...
But we don't have one, not yet.
I find saying we do, as some sort of marketing attempt, is irresponsible for a few reasons -
- Steem has a tough reputation in the space, and throwing out something that is completely false (for attention), only confirms what many already think. Steem is not a scam, let's stop giving people a reason to think it is.
- There are content creators that have lost their life work, as it was all wiped from YouTube when they were removed. This is a time where many are encouraging and educating on how important it is to back up ones work.. and they still need to do so on steem, as the same could happen here. Video is not stored on the chain.
- It's false advertising, and a damn lie.
But What About 3Speak and Dtube?
3Speak and Dtube are two video sharing platforms that have integrated, or built on top of Steem. Both offer many alternatives to video content sharing platforms like YouTube, but there is nothing decentralized about them.
While I do NOT think a platform has to be decentralized to be valuable (in fact there are many positive aspects to user experience that can be more easily achieved on a centralized platform), I don't think people should advertise it as such, when it's not. And that is exactly what they have been doing.
Neither of these services are decentralized, and that can be seen by simply looking at the data on their sites.
-Let's Take a Look-
3Speak
The project managers of 3Speak repeatedly imply that 3Speak is a decentralized, censorship free video platform on the Steem Blockchain. It is marketed as such all over twitter and elsewhere.
This is a message that many users of the platform have now picked up and ran with. I have even seen them censor people who try to point out that it is in fact NOT decentralized. Or better yet, when someone points out the facts or asks a question.. they are sent to the projects "roadmap" which states that some time in the future the platform would like to be decentralized, something they are working towards.
That's great, then they should be clear and honest about that. As right now, they are very much centralized platform, and saying anything else is just wrong.
So that this post is not just purely speculation or opinion, here are some code level points that prove it. Which can be verified by anyone, as this is all open to the public.
Video Upload
When you login to the 3Speak Creator Studio platform and begin uploading a file there are some very interesting AJAX requests being made. The first would be to: /api/upload/prepare
and it returns some JSON like:
{
"signed_url": "https://s3.eu-central-1.wasabisys.com/v--03-eu-west.3speakcontent.online/tPAiPWPtCUMKfLLPvHYWZoLBAzVvrolRLZCloYNUTFZiNwVXZjMVLRWVUamfxOrB.mp4?Content-Type=video%2Fmp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ICQE6DC2QSX9KQ6G1LUA%2F20191229%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20191229T172554Z&X-Amz-Expires=25920&X-Amz-Signature=bbc3511dfbb8607ff2baf592518e35aeb7c53321bbde1885de38747c6f10486b&X-Amz-SignedHeaders=host",
"filename": "tPAiPWPtCUMKfLLPvHYWZoLBAzVvrolRLZCloYNUTFZiNwVXZjMVLRWVUamfxOrB.mp4",
"duration": "2.229116",
"original_filename": "3speak_exposed.mp4",
"status": "ok",
"video": {
"encoding": {
"360": false,
"480": false,
"720": false,
"1080": false
},
"updateSteem": false,
"needsBlockchainUpdate": false,
"status": "uploaded",
"encoding_price_steem": "0.050",
"paid": false,
"encodingProgress": 0,
"created": "2019-12-28T22:46:49.500Z",
"is3CJContent": false,
"isVOD": false,
"isNsfwContent": false,
"language": "en",
"category": "general",
"firstUpload": false,
"community": null,
"indexed": false,
"views": 0,
"hive": null,
"upvoteEligible": true,
"_id": "5e08e1a2d393d54348d29874",
"filename": "tPAiPWPtCUMKfLLPvHYWZoLBAzVvrolRLZCloYNUTFZiNwVXZjMVLRWVUamfxOrB.mp4",
"originalFilename": "3speak_exposed.mp4",
"permlink": "nngzpbgw",
"duration": 2.229116,
"size": 98588,
"owner": "null",
"__v": 0
}
}
What Does That Even Mean...
I know that is just a lot of code most cannot read, but it tells us a lot about the nuts and bots of the platform.
Video Storage
From that returned JSON we learn a lot of details. First of all we now know that they use https://wasabi.com for their video storage, a centralized cloud storage provider.
This is how all the videos submitted to the platform are stored. Remember, video is not stored on chain, so it has to be stored somewhere and then can be viewed on the front ends. This specific storage method is common and many are probably familiar with the term "cloud storage."
This server is not owned by 3speak, it is simply a service they pay for.
Censorship Abilities
Another interesting return, in my opinion, is that in the returned video object you find fields like: "indexed" and "upvoteEligible".
We can only assume what the first one is used for, but my best guess is that it allows them to filter out videos from their platform. Perhaps that break the TOS, etc. Most front ends have something similar on Steem, as each front end is private and has their own rules or laws they must follow.
The big difference is that on Steem, we can access the information from another front end (if one removes it) or build a front end that access the chain (as it is all still readily available on chain). BUT video is not stored on chain, it is only stored in their rented cloud server, and therefore it cannot be accessed any other way.
The second field speaks for itself. They have built in the functionality to exclude specific videos or creators from their automatic curation. This is something they can do at code level.
Meta Information
There is one last very interesting thing that can be seen in this JSON response. Which can be seen in the "_id" field. Which simply points us to what database is used, which is MongoDB. We can see in the the offical MongoDB documentation:
The field name _id is reserved for use as a primary key; its value must be unique in the collection, is immutable, and may be of any type other than an array.
MongoDB is simply a centralized database for storage. This differs from the Wasabi cloud as it does not store the videos themselves, rather the meta information. Which includes the title, length, views, likes etc.
TDLR:
- Wasabi.com is used for centralized video storage, there is no back up.
- MongoDB is used as their centralized database.
- There are ways coded in to disable rewards, as well as remove certain videos/channels.
- Even though they have stated there are future plans for back up and decentralization, currently it is simply a centralized video sharing platform.
The SPK token
On 3Speak you will find a "Donate" button below the each video. If you click that you can donate SPK to the creator of the video. SPK is a token that they offer, and can be bought through their site. But what exactly is it? From the way it looks I can only describe it as the token of the 3Speak platform itself. As while there is one listed in the same name on Steem Engine, there are apparently only 40 SPK in existence there.
https://steem-engine.rocks/tokens/SPK/richlist?sort_field=balance&sort_order=desc
The SPK seen on their site is simply a token centralized to their platform and sold on their site (completely different than the one seen on steem engine). One core entity has control over where they go, and how many are in supply at any given time, there is no public decentralized ledger. Perhaps they have future plans for it though to become decentralized or convert to a SMT. But that is what it is currently.
Video Streaming
When you are on the site to watch a video this code can be found:
const player = jwplayer('player').setup({
file: 'https://v--03-eu-west.3speakcontent.online/hbzwwofj/default.m3u8',
image: 'https://img.3speakcontent.online/hbzwwofj/poster.png',
playbackRateControls: [0.75, 1, 1.25, 1.5, 1.75, 2],
autostart: true,
advertising: {
preloadAds: true,
skipoffset: 6,
skipmessage: 'Skip this ad in XX',
tag: 'https://advertise.3speakcontent.online/www/api/v2/vast/?zone=6',
"client": "vast",
},
abouttext: "Powered by 3Speak",
aboutlink: "https://3speak.online/?utm_source=player_context",
cast: {},
floating: {
dismissible: true
},
logo: {
"file": "https://s3.eu-central-1.wasabisys.com/data.int/logo_player.png",
"link": "https://3speak.online/?utm_souce=player_brand",
"hide": "true",
"position": "top-left"
},
sharing: {
code: '<iframe width="560" height="315" src="https://3speak.online/embed?v=clixmoney/hbzwwofj" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',
sites: ["facebook", "twitter", "reddit", "email"]
}
});
Ok, so this simply tells us the source of the videos in a way.
The very first thing we can see is that they use the JWPlayer to show their videos. Which just simply means what is playing the video for you, nothing unusual about that at all.
Then if we look we can see that the player has a setup
function and gets various parameters. Such as file
: https://v--03-eu-west.3speakcontent.online/hbzwwofj/default.m3u8
We can see here that the URL here starts with what looks like a CDN Url followed by the permlink of the video followed by default.m3u8
.
Using a Google Tool that allows DNS lookups through the browser we now know that their CDN (Content Delivery Network) provider is Cloudflare:
As we already know they use wasabi.com for storage. If we now check the given signed_url
from the video upload we will find that CDN hostname in that URL: https://s3.eu-central-1.wasabisys.com/v--03-eu-west.3speakcontent.online
That simply means that the videos being viewed on the platform are being delivered from the wasabi cloud storage service.
They are using single, centralized providers.
Which makes them 100% and undeniably centralized.
Why Does Any of This Matter?
First of all the way 3Speak handles videos, video streaming and the SPK token is not bad or wrong. Many platforms are centralized and offer great products, as I said.. sometimes centralization actually is needed for a better user experience.
The Issue Is Misleading Users
3Speak is simply a centralized video platform that just auto posts video links to Steem.
No matter what they have planned for the future, what they have in their roadmap, or what they want it to be.. Right now it is centralized and they are lying to each and every content creator every time they say something else.
The only part of the platform that is actually decentralized is the comment section, as that is stored on chain (but can still be filtered by each front end). The 3speak platform is also one of the many who filter out comments from accounts on the "irredeemables" list.
TDLR
The way 3Speak is currently set up they can:
Remove your videos (there is no backup)
Remove your comments (filter them from front end)
Edit your videos (Title, description, etc)
Comment and vote on anything on steem with your account (you give them permission)
Ban you from the platform (Simple, as there is only one entity displaying the videos)
When blacklisted, you can't even access their creator studio (https://studio.3speak.online/blacklisted?u=steem)
Remember -Their whole platform could be taken down by the providers they use to supply storage. They have TOS polices after all as well, that anyone who uses their service is held accountable to.
I believe they want to create a platform like the one they describe, but it does not exist yet.. and leading people to believe it does is just irresponsible.
What About Dtube?
Dtube is easier to explain actually, as they use a IPFS storage method. Which means they run a server and it stores the videos. Currently Dtube is providing the majority of storage, but creators do have the choice to pay a couple outside services to store them, but most don't. Perhaps they don't know they need to, don't know it's an option or just don't see the point in paying for it.
Also due to the high cost of IPFS storage, Dtube doesn't keep the videos stored longterm, and therefore videos need to be backed up, or you risk losing all your work... just like on YouTube.
If you go back to old posts that included a dtube video, many will not play.. as the video is no longer stored. If the creator did not back that video up or post it elsewhere, it's gone.
BUT Dtube does have the potential to become decentralized
As well as any other project. Anyone can set up an IPFS node (a computer running a specific program) and "pin" or "store" your own videos, or perhaps all that are uploaded to dtube. Then, if one server went down.. the videos would still be online, as there is more than one node contributing to the network.
The more nodes taking part in the network, the more decentralized it becomes.
But this requires massive storage and the cost is quite high, therefore longterm it may not be a viable option for decentralized storage of video content.
Final Thoughts
This post is not intended to bash any project, simply to bring to light exactly how these platforms work, as I feel content creators have a right to know. And quite frankly I find it quite baffling that these projects are being sold as "Decentralized" by those who know, without a doubt, that they are anything of the sort.
Both projects show promise, and I think we are lucky to have them building on Steem, but think they should be honest with their current and future users.
As I would love to be able to say that Steem has a Decentralized alternative to YouTube, but we don't.
I hope one day we will.
Today what we have are some great projects that have expressed they are working towards that, that is a good enough slogan.. no need to throw in completely false claims. They will only backfire.
For content creators I suggest getting a hard drive and backing up your videos to that (any you wish to keep longterm). Then you can post on whatever platforms you want.. but you will not lose the videos in case of an issue with the platform itself. This is the best practice currently in my opinion.
This protects you, your work, and gives you a way to avoid losing your content for one reason or another due to 3rd party sites.
Justine
ALL REWARDS ARE BEING SENT TO @SBDPOTATO THROUGH BENEFICIARIES