D.Tube 0.7: Welcome to the HD
We truly live in exciting times. In the past months, DTube's popularity has exploded, especially outside of the STEEM ecosystem. A lot of content producers, particularly technophiles, have started being aware and spreading the news about the existence of DTube, the way it works, and the advantages of our platform over our competitors. As a sign of greater popularity, we got rank #1 on Hacker News.
This update is quite big and took quite a while to prepare for many reasons. First one is that @hightouch, one of our earliest team members has unfortunately chosen to leave the project. I had to finish the front-end work that was started for 0.7 without help. Another reason is that we have heavily altered the upload process on this patch, as well as the way we write DTube videos on the blockchain. We need to patch both our front-end and our uploaders at the same time, which requires extra preparation and carefulness. Please be gentle in the comments if we have a few issues in the hours following the patch.
Up until now, DTube has been encoding all your videos with CPUs. While this has been cheap, and reliable enough to get to our current upload levels, whenever we had some big popularity peaks, we've hit some queues on our servers, and that's usually enough to discourage new users to stay.
DTube is now in possession of professionnal Quadro P5000 GPUs that will take care of all our video encoding needs. We had to do a bit of work because GPUs enable us to do new things we couldn't before.
We can now legitimately parallelize the encoding, that means that each server will now be able to handle multiple files at the same time, instead of only one like previously.
Another interesting feature we enabled on these GPU encoding servers is 1:N transcoding. It allows us to create multiple sub-qualities files with a single process, dividing the total decoding load required.
Adding 720p & 240p
720p has been requested ever since we introduced 480p. I'm sure it's going to help out a lot to see the little details in all the videos. Files are a bit bigger, yet still very manageable compared to source files. 720p is pretty much considered like the minimum watchable quality nowadays. Video platforms usually display a very pleasant 'HD' icon in the player when you are watching 720p or higher. I have very little doubt that this feature will attract even more serious video producers on DTube.
240p is barely watchable quality, but at least it will allow you to keep your videos playing when taking a train and going through an area with unstable network. It really doesn't cost much space wise, neither encoding wise, so it's better to start creating those right now, even if our player won't automatically switch qualities based on your network quality.
Because of these changes, we also added some new logic that won't encode into a bigger quality that your source file. If you upload something 480p, it won't do the 720p because it's useless and we cannot 'enhance' the quality of a file through encoding. The resulting file would be bigger, but wouldn't look better.
Source file will gradually get removed
The source file is actually a source of debate. While I agree it's a nice feature to have on the website, these source files are actually responsible for a large percentage of our total used disk space, because a lot of users are uploading raw footage, unencoded.
Starting from 0.7, we are going to try to get rid of those source files, when at least 720p is available. Instead of always putting a copy of your source file on IPFS, we will only add the 720p, 480p, 240p. If you want your source file to be viewable, you will need to host it yourself on IPFS.
Making DTube robots-compatible (aka server-side rendering)
Maybe you noticed it? You can now put your d.tube links on Facebook, Twitter, Slack or Discord and it will display a little preview (like it does for all sites normally). We enabled this a couple weeks ago already, only for a few bots, and now it's enabled for any robot.
Enabling server-side rendering for DTube was a bit complicated as every part of what you see on your screen is actually generated inside your browser - client side. So it was pretty difficult for robots to read our website. To them, it looked exactly the same as a white page. Not anymore.
The problem of compatibility with robots was really prioritary because of search-engines such as Google. We also enabled that recently, and the number of indexed d.tube videos is going up everyday.
Robots are now being pointed to a server we control and served a slightly different version of the app (a very ugly one), that they can now read properly. This change will represent a big marketing boost for DTube, enabling search-engines indexation of all our videos. This will mean more web-traffic, more views for every content creator, and very likely a lot of new organic registrations on the STEEM blockchain.
We want DTube's embed player to be supported in any website. A lot of websites like steemit.com limit which domains can display an embed for security reasons, but other websites such as reddit allow any embed player as long as it follows some strict guidelines. First step is having an oEmbed api. We now have one for DTube. Examples:
That was one of the basic video platform features that we were still lacking. There are tons of good reasons to have subtitles and use them
- When you are deaf
- When you want to watch a video that isn't in your native language
- When you just cant turn the sound on (in a library without your headphones for example)
The only format compatible with a HTML5 video player is called WebVTT, so we are using that. The most mainstream subtitles files are .srt. While those wouldn't work correctly in HTML5 normally, DTube can easily convert them during your upload, so feel free to send your .srt, they will work fine.
You can add one subtitle file for as many languages as you want.
I believe this is going to be super interesting for all users who are posting non-english content, as they can now add an English subtitle in order to get their video understood and curated by the majority of steem users.
You probably noticed how we decided to move all our settings into a single menu. This is mostly to take care of the fact that small devices don't have a very big width and we wouldn't be able to have too many buttons in it. Considering I needed to add subtitles option, it was time to rework the menu and options.
Small UI improvements
The time bar was really hard to click, especially when trying to go back to the start of the video. Bar now adjusts in size and position a bit better to make this action easier.
The video preview was also going out of the screen on the extreme left and right, they now stick to the border and don't get hidden.
Remembering your settings
Considering we now display a lot of qualities, it will now remember the last quality type you selected and keep loading new files with this quality. This is going to be a good improvement from anyone loading a 480p video even when their connection can support a much bigger bitrate.
Channel Transactions History
You can now spy on anyone using DTube! We wanted to bring in more features for the channel page and we've done it! Go to any DTube channel and click on the 'ACTIVITY' tab. From there you can see all transactions linked to this channel and filter based on transaction types (votes, follows, etc).
Let us know what you think of this feature. Do you think it's overkill in something like DTube, or do we need more small features like those?
Better blockchain error messages
A lot of people have been complaining about 'Blockchain errors', most notably during the upload submission (step 3). These error messages were very generic, and could actually be linked to many other things. Such as an error in the tags, a too long title, the fact that you changed your password but DTube doesn't detect it and doesn't log you out, the user trying to upload too fast after another root post (5 minutes is the minimum wait time between two root posts), lack of bandwidth, and many other possibilities.
We should now display properly formatted error messages coming back from the steem nodes, and you will know very quickly what is going wrong, and how to fix it.
Storage servers savers for 480p
Some people have noticed also, but we ran into some issues with your video files recently. Managing the redundancy of all your uploaded files, even for only 7 days, is apparently something we were struggling with.
In order to reduce these issues, we decided to finally rent some storage. All the encoded videos are now getting duplicated on this new server, which should create a copy and ensure we can always keep something online, even when hardware issues arise.
Better languages management
DTube has been multilanguage for a while now, but the translations were needing some updates after all the new features added recently. I updated the source strings on crowding a few weeks ago and our translators translated the app for 0.7 in 18 languages already! Feel free to help us for your native language by signing up on https://crowdin.com/project/dtube.
You can also change the language directly in the settings menu now. This will be convenient when you use a public device and cannot change the browser language settings.
Our plans for next patch
I wanted this to be in this version, but it actually turns out that it's a lot more annoying than I thought, and Busy.org recently launched their own notification system. Wait & see... If Busy.org's open source notification system is working fine, we will probably adopt it too.
I've been promising that for a while now, but I wanted to start doing it at the end of the project. It's probably not too much work, but we will need to wait for app stores approvals.
At the moment, if you want your video to load properly (with all qualities), you need to use our centralized uploading servers. We don't want to force this, therefore we are working on a desktop uploader, where you will be able to encode your videos on your PC, with your hardware, and conveniently share those files on IPFS with a UI, on your own internet connection.
We need extra features on our player so it can be remotely controled (example). Once we pass these tests, we should be able to include d.tube videos directly on big websites/apps like reddit, tumblr, slack, etc.
Documentation / Open sourcing
A large percentage of our code base is already on GitHub. The main unminified app isn't there though, in order to prevent people from modifying the original vision. Most of my bullet points are in after 0.7, and our project is popular enough that it makes sense to open source it and start going with a more open decision making process for the next steps of the project.
I've been approached by a few well-staked users from the community, looking for a way to support our project. We are considering proposing a sponsorship program, alike other apps. News about this will probably come from the @dtube account directly, before the next version.
I personally feel like I am near the end of the initial roadmap I had for DTube when I launched it. Things surely are way too buggy for the audience we have, but I'm confident we can keep on eliminating those bugs one by one like we've done so far in the next version that should only have notifications as a new feature.
D.Tube's web traffic keeps on growing at an alarming rate. We are currently rank #16000 on Alexa, approximately the same rank that Steemit.com was at, about a year ago. Many content creators with millions of followers made their way onto DTube during this patch (for example @furiouspete123), and have always been well received and integrated by our STEEM community. Thank you all for that, and keep up the cooperative and helpful attitude, this is what makes this community go forward so fast.
Also because I believe this will be the last time our uploads will be so buggy, I will leave a BIG SHOUTOUT to all serious content creators who kept on using us regularly, despite many difficulties: @exyle, @dollarvigilante, @davidpakman, @allasyummyfood, @kevinli, @boxmining, @coruscate, @einarkuusk, @adamkokesh, @paolajane, @sergiomendes, @tanbay, @marketingmonk... and all others I couldn't remember