loading...
The DEV Team

DEV feature idea: Self-serve live broadcasting

ben profile image Ben Halpern ・2 min read

In the past we put on live streamed talks/tutorials/workshops which were generally well received, but they became a big coordination burden on our small team and we eventually dropped them.

Feedback was mostly great, and barring some technical issues here and there people usually loved them, but it was hard to pull off.

We'd love for our platform to be a destination for live sharing, be it live coding, office hours, or anything like that.

So I think it would be great if we re-visited the idea of allowing folks to go live on their own. They'd all-of-a-sudden just be live on the platform and anyone could pop in to say hi.

Because there are other platforms which specialize in live streaming, the best approach may just be to allow people to broadcast from there. Alternatively we could go with a native solution. I could see either being an option, and it's a conversation we should have.

We have our own chat infrastructure, and I think if launched this, it would be nice if we used our community chat alongside whichever solution we go with. That would allow us to moderate that interaction within our ecosystem.

I don't think this could be a core team priority any time soon, which is why I'm putting this out for feedback. If people from the community are excited about this, I think it could be a nice community-driven initiative. Of course, if folks from the community want to run with this, we'll be available to help push it through and make sure it stays on track with the platform's direction and needs.

Some points/questions to consider:

  • We could allow embed of Twitch/YouTube/etc.
  • We could broadcast within our own solution (provided by some cloud provider).
  • Building our own is the coolest long term path because we're open source and could evolve it in really interesting ways.
  • If we do embed from another user-facing service, would we colocate it with our own chat?
  • I think the design of how we display folks who are currently live and stuff like that are not important details upfront.
  • If we build it natively into the platform, what cloud services seem best for this? Several of our existing infrastructure partners have relevant offerings for low-latency live streaming, but differentiating them is easier said than done.

If anyone has any thoughts, I'd love to hear them!

Posted on Apr 4 '19 by:

ben profile

Ben Halpern

@ben

A Canadian software developer who thinks he’s funny. He/Him.

The DEV Team

The team behind this very platform. 😄

Discussion

markdown guide
 

I think it's a good idea.

Maybe, go with embedding third party stuff first, so we got something right away and then transition to something home grown?

Also, I don't use the chat. Don't know why. I use different Slacks and Discords, so I guess I don't have anything against chats. Maybe bad UX? Maybe to broad to be interesting? I don't know.

Just my two cents 😂

 

Maybe, go with embedding third party stuff first, so we got something right away and then transition to something home grown?

I second this. Start with Twitch, see if interest is there, then iterate as needed.

 

Building this kind of thing open source is easier then you might think. WebRTC is p2p and the only server side infrastructure you would need is a signaling server and possibly a messaging pipeline (WebSocket), storage for displaying metadata about the streams. Recording the live stream is a whole other can of worms, but it could be possible to stream WebRTC to a server and record it there, compress and serve. A lo fi solution would be to allow the user to record, the WebRTC MediaStream could be recorded on the client and then uploaded to a server as a Blob.

 

P.S. if this feature goes live I will rig up a green screen for my home office and live stream content all the time.

 

This is music to my ears.

But is WebRTC the solution for mass streaming? I was thinking that was more for group video chat. It seems like video streaming is typically implemented by uploading to a server which distributes the content via a CDN.

I'm all for taking the right approach, we just need to figure out what that is!

The way I was thinking about implementing this feature followed these steps.

  • Live broadcast over WebRTC
  • WebRTC MediaStream is recorded on server or client
  • Recording is transmitted to CDN
  • Recording is streamed from CDN

WebRTC would only be for the live broadcast, multiple people could participate or it could be a one to many broadcast (easier for MVP).

Would love you to weigh in about WebRTC on this GIthub issue I just made! It sounds like a really cool thing to do, but I don't much experience in it to give it a good evaluation

github.com/thepracticaldev/dev.to/...

 

There is a mature project around webrtc jitsy.org

But I dont think the webrtc will be the right tool for this.
By default each node will open a connection with all nodes connected to the session, so for mass streaming it will burn the computers ;)

 

I think it's a great idea. This would help new, unknown streamers to be more discoverable, since the signal to noise ratio here would be much better than on YouTube or Twitch. It certainly would encourage me to start streaming.

Maybe a tool like bigbluebutton.org/ could be interesting.

 

I really can't help with the technical questions, but I do have to say I'd be excited for this! I occasionally stream code work on twitch, but it's geared towards higher view counts instead of more interesting comments, and so far dev.to has been full of really insightful people. I'd rather have 1 person from here to talk to during a stream then 10 people on twitch who are looking for something completely different. There's still the science and technology category on twitch if you wanted to do embeds, but it would be nice if dev.to had it's own more specific tagging system for video steams.

Edit: How hard would it be to integrate the chat with something like restream.io?

 

I’d be curious to hear if folks would be interested in some sort of integration with VS Live Share, that would allow you to publish live collaboration sessions, and interact with the community in a potentially more immersive way.

 

I know of plenty of podcasters who would love this feature. You have to drag your audience over to YouTube/Facebook/Twitch if you want to do any broadcasting but I'm sure many of us would prefer a dev oriented space (especially one as friendly as Dev.To).

 

I think this would be great! I've tried streaming a few times before and twitch works fine but having something tailored to devs sounds awesome!

I'd definitely use it, and am probably down to write some code to support this!

 

I like the embedded third-party option starting off.

 

I would be super interested in this.

I actually think there would be a lot of value to see different peoples work flows and let them explain as they go.

I often struggle writing because I have to try and remember to stop and write. The ability to live stream means I could just talk it out, which is what I do most of the time.

 

Third party first, I tend to use third party nowadays, twitch and youtube are good. I'll go for youtube it brings more audience, i think 😅😁

 

I think you should just integrate YouTube and/or Twitch.

 

Legit excited about this. Too many other platforms that aren’t really tailored for coders. I think a custom in house solution would be a great long term investment.

 

Since dev.to already uses twitter- Including Twitter Live might be an option!

 

Embeds would be so rad. Twitch especially.

 

I made a Github Issue

github.com/thepracticaldev/dev.to/...

to further discuss this and potential implementations! Would love anyone who might want to assist to join in on the issue!

 

We could do it the moxer way, with 8-second clips.