D.Tube 0.5: Big Optimizations

in #music7 years ago

Things are moving really quick behind the scenes for DTube. I have been away from my work computer for almost two weeks (with SteemFest and stuff), so when I came back I realised the two other devs @hightouch and @superkoala had done a lot of work on their own. It's only been a month since 0.4 and I'm happy we can keep the pace in developing DTube into a stable project.

DTube is obviously a major player in the STEEM blockchain ecosystem, there is no denying that. I receive countless random thank you messages on both steemit.chat and Discord on a daily basis for my work on DTube. When I asked at my DTube presentation at SteemFest who knew about DTube, it looked to me like everyone in the room raised their hand. That's pretty rewarding. I am confident that this new version will be the most stable yet to use for everyone. Version 1.0 isn't so far away anymore as only a few items of my original roadmap are left.

Jussi
I woke up yesterday and DTube was broken. The steem node we were using in 0.4 had just died apparently. So we decided to patch a bit earlier to 0.5. DTube now uses Jussi just like steemit.com does. Every page will load faster in general :)

This is a great performance improvement for DTube, so thank you @steemitdev for putting Jussi into production recently succesfully!

New Upload
There is nothing that destroyed the DTube experience like waiting 30 minutes for your upload and receiving an error message. Ever since 0.1 I have received countless hate messages because of the bugged uploads. Even @dollarvigilante mentioned it during his SteemFest 2 speach. :facepalm:

The new uploader should fix that problem. This part of DTube is completly open sourced, so you can inspect how it works and what happens to your files if you want: https://github.com/dtube/ipfs-uploader

On top of that, the new uploader adds a bunch of new features:
Server-side encoding to 480p
A big problem for DTube was the complexity of converting a video to the proper format for a random user. Our new uploader does that for you, by creating a new web-compatible 480p encoded video file from your original file upload. That file will properly play in every browser, and load quickly even on a potato internet connection.

This was a much needed feature. Not only a lot of users are uploading videos that have an improper format for the web, a lot of users have a low bandwidth and cannot properly stream the source file.

I personally believe this feature is the best optimization we could do for DTube. It fixes the two biggest issues at the same time.

Queuing System
If I'm correct, you shouldn't encounter it too often, at least with our current upload volume. But basically the new uploader will make you wait before encoding your files and dumping them on IPFS. This will make the upload process much more reliable and easier to reproduce issues when they inevitably happen.

100% Power-Up
You can now power-up 100% of your rewards through DTube. Just click the 'Advanced' button in the new uploader and enable the power-up. Get that fancy icon on Steemit.com to show you are a supporter of the STEEM blockchain.

Choose your Steem Article
Instead of requiring you to go to steemit.com to edit your article, you can now directly do that inside DTube. If you want a custom Steem Article (that doesn't get generated from your video description), you can now do that in the advanced part of the upload page.

Let's talk about tags
Tags are a needed functionality for DTube right now. Everything displayed on DTube needs to have the 'dtube' tag. If we want to make tag browsing possible, we need to have special 'dtube-xyz' tags to be able to fetch the newest, hottest and top trending for this tag. This is why all your tags were messed up when using DTube.

DTube.

Tag Input is now much more clear

A lot of users have complained how the tags get modified and they do not get added to the normal tags, and they had to edit through steemit.com. Now your normal tags are also added, at the price of creating more than 5 tags sometimes. For instance, if you use 3 tags on DTube, then you will end up with 7 tags in total (dtube, tag1, dtube-tag1, tag2, dtube-tag2, tag3, dtube-tag3). This is actually possible to do in the blockchain, and while waiting for the community feature, there is nothing else we can do to make tag browsing possible in a sane way, i.e. without relying on a 3rd party database.

Update 1am: Actually we changed that again to limit it to 5 tags, it was creating some bugs where some videos wouldn't get displayed in new videos. :(

Edit your video
This was a hugely requested feature, and it's finally here! To edit one of your videos, just head to your video and there should be a blue 'Edit' button. It took us this long to introduce this because it's so closely related to the upload page that we had to do both at the same time. And sorry for all typos y'all couldn't fix :)

By the way, if your video is more than 7 days old, then you won't be able to edit your video. This is a limitation of the STEEM blockchain and not much can be done about it.

Switching to different quality in the player
Available as a small button in the control bar of the player. Of course, the source file will remain available as before as the default. Switching between qualities isn't automatic yet, so if you encounter a source file that doesn't play, I invite you to try to switch to the 480p version.

Video Duration shown on the picture
Another basic feature for most video platform websites: displaying the duration of the video on the snap picture. Basically you now know how long a video lasts before clicking it. Convenience for all.

Optimized UI/UX
While 0.4 greatly improved the mobile experience, this patch goes even further. The player now takes the full width of your screen if you are watching on small device or half of your computer screen. By the way all devices and resolutions will be able to adjust pages to get a proper render. We will keep working hard on it to propose the best user experience to everyone. We also made some changes on UI and the general look is approaching what we want.

Channel Page improved
The channel page went through a few changes that are probably only temporary. We now display your cover picture (thanks to img.busy.org) like steemit.com does, and you can subscribe from the page. It's still lacking a bunch a features but it will come :)

Persistant Volume
DTube now remembers your volume settings and keeps it at the same level, instead of turning it back up to 100% on every new video. This is something that is going to improve greatly the comfort while browsing DTube, and I'm unsure why that wasn't done earlier.

Video Description limited in size
Steemians have a tendency to write a lot of text in the description of their DTube videos. That is not a problem anymore, as only the first few lines will be displayed. Users will need to click the 'More' button to read the full description. This will greatly increase the visibility of top comments.

Hidden sub-comments
This is something we are testing in DTube. Instead of showing all comments by default, it will only display the top level comments, and you need to click to open the replies. Again, increasing the visibility of top comments. If you have the #2 comment on a popular video, it doesn't get hidden by the worthless replies to the #1 comment.

This change, if everyone likes it, would also help us move away from the nasty get_state call on the API. This call is very heavy and loads a lot of useless information, but we need it to fetch all comments from a video (and that's how every app does it)

Bug Fixes
We actually introduced a lot of bugs in 0.4 by adding too many UI changes too quickly. This version solves most of the common bugs that were reported, such as the grey screen, the player refreshing after an upvote or comment, etc. If you still encounter some weird errors while using DTube, please keep the bug reports coming. Doing a quick DTube video is a nice way to showcase your bugs.