SmokeTube: A Proof Of Concept

5 months ago

Link To Video


(click on above screenshot or link to watch on SmokeTube)


In this #video, I smoke some #GreenCrack and ramble on about what I've been working on.

SmokeTube [ https://smoketube.witness.pw ]

About the Site

I've combined pre-existing software to host a video uploader/viewer.
It's a very basic form.


The homepage allows you to enter the #IPFS hash of a video stored on IPFS to watch that video.

Below that is an upload box that can be clicked to select a file, or a file can be dragged into the box.

A video in the process of uploading:

Once uploading completes, the page will navigate to the page to view the video,


Notice the 'iframe' code beneath the player. Hypothetically, if smoke.io allowed it, that line could be added to a post to insert the video player.

Why I Like This Concept

  • Puts the #community in control. We can decide how resources are allocated. This can easily be taken out of my influence and put under group control.
  • Decentralizes the data when done correctly. The more people interacting with the files on different levels, the better spread out those files should become.
  • Censorship resistant. So long as one copy of a file is hosted somewhere on IPFS, it has the potential to propagate across the entire network, similar but different to torrents.

Current Downsides

  • It's only currently my machines, if something happens to me or them then the network crumbles rather quickly. I believe this can be resolved through community involvement.

  • Some browsers seem to not play the videos or are glitchy when they do. Chrome on Android required 3 taps to get it to play, and going full-screen broke it on my phone. One report was that Firefox on Android didn't work. Etc.

  • Users reported slow speeds in the previous video test.

  • May require some technical knowledge, ie. compressing the video for better playback once uploaded. Also, backing up one's own videos on IPFS for longevity.

  • Speaking of 'longevity,' I have extremely limited storage space, so if filled near capacity I would definitely have to begin unpinning videos with the hopes that someone else had grabbed them by then.

  • Uploads are currently capped at 1GB for now, but this can be adjusted if needed or desired.

No Warranty

I offer no warranty with this service. The main intent is for this to be seen as a 'Proof of Concept' or working prototype to show that the idea is feasible. An experiment.
There will surely be bugs, errors, and failures, and I do not guarantee the longevity of content viewed through this network for any amount of time.

If the community decides this is of some value, my hope is that others will add resources and improvements to take it beyond what I can currently imagine and make it ready for production.

Video Compression / FFMPEG

Currently, the network doesn't offer any kind of video conversion or compression. What you upload is what it will try to distribute across the network and serve to viewers. Video conversion/compression could possibly be added as an option in the future, but I've not researched options for this.

I highly recommend compressing any video before upload. The video posted above was 794MB until I ran it through FFMPEG and reduced it down to 275MB for about the same quality. Almost one third the original size.

After transferring the video from my phone to my desktop, I processed the video using the following ffmpeg command:
ffmpeg -i VID_20190116_212642.mp4 -crf 23 -preset veryslow -movflags +faststart trees_2019-01-16_720p.mp4

What the options do:
-crf 23 A 'constant rate factor' value. More Information.

-preset veryslow A setting for how long ffmpeg will spend trying to compress the video. More Information.

-movflags +faststart Moves information needed to play the video toward the beginning of the file so that it can be played before the entire file is downloaded. More Information.

Options like the CRF and Preset can be tailored to user's preferences, but faststart is certainly recommended.

Handbrake

Some possible handbrake settings that you may want to enable to get the same effect as the above ffmpeg command,

Web Optimized

Should be the same as '-movflags +faststart'

Compression Settings

This sets the CRF to 23, and tells handbrake to take lots of time trying to reduce the size.
I haven't tested 'Fast Decode,' but that's interesting.

Servers

Currently, I have three of my own machines donating resources to the network I've created.
2 x Canadian Servers (Rentals that predate Smoke)
1 x Netherlands Server (Added for network stability and to possibly give better speeds to our European friends)

Each machine acts as a mirror/gateway for the others. As it's configured now, the uploaded file tries to be copied to each machine for availability. This can be adjusted to fractions of the available machines. If we had 10 servers in the cluster, for example, then we could choose to have videos available on at least 3 but not more than 7, etc.

One other Witness has already expressed interest in joining in this experiment and the more the merrier!

If you want to donate resources, OR create your own network

I've documented my entire setup on my github, https://github.com/trees-smoke/ipfstube
If anyone wants to join in on this network they can follow those instructions to have a functional node.
From there, you merely need to be added to the DNS records for your machine to join in as a Public Gateway.

I've written about 0% of the functional parts, credit to the authors are basically in the github.

Comments? Questions? Concerns?

If any smokers have a video that will be publically posted on smoke.io anyway or a test video they want to try, feel free to upload it as an experiment. Consider everything uploaded 'Public.' What you do with the link/file-hash past that point is up to you, if it works.

I can not recommend 'relying' on this in the slightest at this point, lots of issues could lead to broken posts (especially in the future), but maybe a 2nd video source as a backup link is reasonable, etc.

Contact @trees on the Discord channel if you like.

What do you think?
Is this good?
Bad?
Does any of this make a lick of sense?
Am I mad as a hatter?
All of the above?



Get 4.2 Free Smoke Power On Sign Up To Start Your Journey On Smoke! The First Cannabis Community That Pays You To Post And Curate Content You Love..
Sort Order:  Trending

You know you have my full support on this, I was looking at it all yesterday and was thinking cause I run windows on my main if I should rent a small server to host a node on.. as you said more nodes the better

·

Windows should still be able to do this, although I haven't used Windows in years.
Presumably, it can run nginx, and then the IPFS stuff.
I definitely appreciate the support!

The Netherlands node I started up has SUPER tiny harddrive space, 40GB, (ssd actually) from ramnode, https://www.ramnode.com/vps.php, their 1GB SVZS. I don't know what performance will be like, so I'm not sure if I can recommend that yet.
It has an Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz.
Not sure how far 40GB gets us but it was $3.50/month, I literally couldn't say no.

·
·

Keep an eye on your bandwidth, it’s only 1TB for those accounts. :D

·
·

Alright, I will work on getting this loadef asap on my main rig. Be much cheaper for ssd space to run on home computer. I also have unlimited bandwidth so that Is never and issue. 😀

·

Make sure to doublecheck they allow IPFS hosting.

Great work man.. Great POC

Vid plays perfectly on chrome.

I will work on allowing these iframes asap...

Will be interesting to see what type of bandwidth this is chowing on your servers.

Very nice work, mate. I love those basic PoC roll outs.

Maybe also provide some recommended Handbrake settings/profile people can use?

·

Added, looks like on the first menu is an option for "Web Optimized" which is great, and then after that it's really up to the user to decide, but the "RF" at 23 is what I used and the 'Very Slow' to shave off as many MB as possible.
From there, one would just have to make sure the other settings are good to go for what they're doing.

Awesome, keep up the good work 👌

That’s great work and awesome of @stoner to step in and get the iframes going

This is an excellent idea if someone wants to upload a simple video but doesn't want to use YouTube or the kind.

This is awesome! Wow! I'll look into setting up a node if I can

Node fully functional and joined to the network!
Thank you @trees for helping me to set it up. 😁

A great initiative. It'll add an extra level to this already very promising platform.

Hmmmm... could not upload my movie from my iPod. I have the same problem with DTube. Does it need to be a certain video file format ???

·

The uploader checks to see if the mime type is a 'video/*'
I've been using MP4's as, as far as I know, that's the easiest for browsers to playback. Hypothetically there are other filetypes that would work as long as it's playable in a browser these days.
What format does the iPod record to?

Super curious what type of error you're getting, both for myself and Dtube.

Does it attempt to upload it at all? Or just straight to an error?

I wonder if it would be of value if you could send me a sample video somehow, like over discord, etc. For the video to be examined.

This is amazing, playing fine on chrome. Happy seeing this on smoke. keep up the amazing work💝