D.Tube 0.6: Pushing it to the limit
So many things done, so many things to talk about again in this blog article for DTube...
First, I haven't blogged about it but a lot of people noticed that the @dtube account now has 1M SP delegated from @ned. This is helping us tremendously to gather funds for the project development and infrastructure. As collateral damage, our uploads have more than quadrupled in the last month since 0.5, we are nearing 1 video per minute.
A lot of people keep messaging me asking me why @dtube upvotes or not, if it is a bot or not. It is not a bot, we actually try to watch as many videos as possible, and if we like it we upvote! It is very possible that some good videos get missed, it is getting difficult to look at everything right now.
More encoding power
I said in the previous article that I was expecting the uploading server to be enough power not to have any queues. Well I was wrong, it seems we have been hitting our maximum encoding capacity at peak times of the day. Why? Because our uploads grew from 200ish videos a day to 1000 videos a day during patch 0.5! I therefore invested some of our STEEM into renting 2 more servers for the encoding, which should triple up our power and hold for a while, maybe.
Apparently a lot of people were unable to see the D in the previous DTube logo. A lot of people also started using user made logos. This was going nowhere good :) Here is the new iteration of our logo:
We now provide a media kit for anyone who wants to include a DTube logo in his work. This has been requested so many times on our discord server. If you want to make your own DTube tshirts, mugs, or whatever, you can find PNG and SVG version of our new logo.
We also updated about.d.tube to match our definitive colors and current logo.
The player is where a big part of the magic happens. We decided to patch it early (few days ago), so this part is not really new for active DTube users but I'll still put the changes in here.
In version 0.2 I changed the loading logic of the videos from using a random gateway, to using a canonical gateway for each file. While this worked really well to reduce the load on all gateways and avoid file being transfered for no reason, it also made a large portion of our videos stop loading when a single ipfs gateway had issues. In this version, the player will now make a HEAD request to every gateway, and find out on which gateway the file is the most available, to you. If a single gateway already has a file available, it will answer faster than others. If multiple gateways already have a file available, most probably the closest geographical one will be the fastest one to answer.
Full custom design
We were using some open source design for our player before, which was actually very close to the official player that the BBC used for a while. @hightouch managed to redesign the whole player into something that fits what we need, with a proper settings menu. At the moment we still only have the playback speed option, but more is coming.
You should now be able to control the video player more efficiently if you are a keyboard warrior. Space to pause, left and right to go backward / forward, numbers to go to a certain part of a video.
Also mouse users will be happy to know they can now adjust the volume by scrolling the mouse wheel when the player is focused.
Video preview on mouse hover
This wasn't patched earlier because it was too good to reveal ;) and we already had it tested. You can now preview what a video looks like at a certain time without even downloading the video. Wow. Just hover your mouse on the time bar of the video, and the preview will automatically display. This should work for every video uploaded after we released 0.5 so about a month ago.
DTube's snaps were uploaded straight to IPFS before this patch, and some people were submitting some absurdly high resolution images, considering the fact that these pictures would never get seen at more than 210x118 pixels on DTube. We would also load an insane amount of pictures on some pages like the homepage (12 per line - 60 total for logged in users). We therefore went through with two simple enough changes to drastically improve bandwidth without impacting the on-screen quality.
Lazy Loading Images
What is lazy loading? It's the fact that an element will only load when needed, instead of stupidly on page load. We applied lazy loading to most pictures on DTube. Pictures that are lazy loaded will load with a short fade-in animation.
Manipulating your snaps
On top of that, we will also now resize every uploaded snap through our server to 210x118 pixels resolution (the resolution we use on DTube), minimizing file size. This should also fix snap upload issues.
A big problem of DTube was how it was pretty hard to find more than the really popular content creators like @exyle, @dollarvigilante, @acidyo or @davidpakman to name a few. Those are lucky to be displayed on the homepage regularly, but it's not the case of the 'lower' 99% of our users. So here are a few things that should help our newer, motivated users to get detected by dolphins/whales.
Curiosity is a very human thing, and if DTube increases the ways in which users can discover content they like, they will naturally spend more time browsing DTube. According to similarweb.com, DTube's users stay for 5 minutes on average, against close to 20 minutes for YouTube. I predict that these changes will increase the time spent on DTube by users a lot.
Dedicated trending / hot / new pages with infinite scrolling
Remember the old trending page we had, which displayed up to 25 videos maximum and was basically useless? We enhanced it to make it load infinitely as many content as you want, by simply scrolling down like on steemit. Then we did the same for the hot and the new videos. This enables you to discover as many content as you want.
Ah finally! I've been requesting users to enter tags during the upload since 0.1 but it's never been displayed anywhere until today (so for a total of five months).
At least the tag feature is coming in a full pack. Firstly, a short list of the top tags on dtube are now shown at the bottom of the sidebar. Tags are also now displayed under the title of your videos.
Lastly, clicking on these tags will now take you to the tag page where you can discover content from the same tag. On the tag page, you can also filter by upload date and video duration, and sort videos by payout, votes, or upload date.
This will help you easily discover other DTubers matching your interests and start networking with them by giving them votes and comments.
Improved related videos
Of course the related videos should be the main place where content discovery is made. It's the most natural way. We are now using the related feature of the AskSteem API to fetch related videos to the currently viewed one. It's certainly not as good as YouTube's algorithm but it should be a good start. As we get more videos day after day, I'm sure the quality of the related videos will improve by itself.
This should allow you to watch infinitely many videos by simply staying on the video page and watching video after video, instead of being forced of watching always the same content creator like before.
New feature! Ever received a link from someone for a long video but didn't have time to watch it? You can now use the 'Watch Later' option, accessible either through the top-right angle of the snap, or in the little (...) menu under the video.
You can then access these videos at anytime from the sidebar->watch later link. Be careful though if you change device, it won't see the video you added to the watch later on your other device. The data is inside your device, not your account.
Channel Page improved again
We added a default cover image so that it doesn't look ugly. Also added some numbers showing the estimated value of the account (with more detail on mouse hovering), voting power and reputation.
The loading still sucks, and won't show more than your last 100 STEEM contents, so this page still requires some work from us.
Slick Carousel to Owl Carousel
The carousel is the thing that that 'rotates' videos of each category in the homepage. We've been using a pretty slow module and replaced it with a lighter and faster one. Consequently the homepage will load a bit faster. It's still not fast enough by my taste so we might need to have our own carousel to get the homepage rendering faster.
SteemIt did it so why not DTube? Feel free to try out the dark version of DTube by going into the settings and enabling 'Night Mode'.
You can now Login using SteemConnect
A much requested feature! While I personally believe that using the posting key will always be safer, a lot of users are complaning that they cannot login (despite explaining how to retrieve a login key in the #1 question our help page).
SteemConnect is a nice alternative for logging in that is easy and secure. If you try to login on DTube now, there should be a blue SteemConnect button. For your first login on DTube, it will ask for your active key, in order to delegate the posting authority to SteemConnect.
After that, if logged in on SteemConnect, it will log you in automatically by only pressing one button. Your SteemConnect sessions can only stay for up to 7 days, after that you will need to login again.
Partnered with Discord: discord.gg/dtube
Getting messages from multiple sources of information doesn't help my daily tasks. I want the Discord server to become the main chat for the DTube community, I believe it works well and has a lot of advanced features that we require. The dtube SteemIt.chat channel will still exist, but we will not be checking it very often, so it is much better to join our discord if you need help or just want to start networking with other DTubers.
As you can see, we added a lot of pages and features in this version that should make DTube feel much more complete. A lot of promised features have now been delivered, and only a few are left from my original todo list. What's left in it? Basically notifications, subtitles, mobile apps and enabling search-engine crawling, so that google can finally see DTube's content. The search would need some improvement as well.
DTube has grown faster over the last month than it ever did, and seems to be entering snowball mode. More and more people are converting. Every new level of traffic we reach, creates new issues and challenges for our team. I don't know how long we can keep growing at this pace, but within the next month, we will probably start using GPUs (with the NVENC library) to encode videos. This should increase our efficiency a lot and help us scale into hundreds of thousands of videos per day if we ever reach that point.
With the recent rise of the price of STEEM, we should be making enough money from curation and beneficiary rewards to keep growing until we reach a technical limit or a popularity limit. Our team is still working well and next update should come within a month or so again.
As usual, feel free to comment underneath about the changes (especially the logo), let us know if you think something is wrong and you think we should revise it.