WebRTC in 100 Seconds // Build a Video Chat app from Scratch

Sdílet
Vložit
  • čas přidán 4. 07. 2024
  • Want to build your own peer-to-peer video chat app? WebRTC is a technology that creates a realtime connection between browsers where users can exchange audio/video streams fireship.io/lessons/webrtc-fi...
    00:00 WebRTC Explained
    02:01 Build your own Video Chat
    3:37 Code setup
    04:34 Peer Connection & Webcam
    06:49 Offer Signaling
    09:45 Answer Signaling
    Source Code
    github.com/fireship-io/webrtc...
    Useful Resources
    WebRTC Docs webrtc.org/
    Codelab webrtc.org/getting-started/fi...
    Signaling developer.mozilla.org/en-US/d...
    #webdev #js #100SecondsOfCode
    Install the quiz app 🤓
    iOS itunes.apple.com/us/app/fires...
    Android play.google.com/store/apps/de...
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
    My VS Code Theme
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
  • Věda a technologie

Komentáře • 441

  • @klutch4198
    @klutch4198 Před 3 lety +373

    Literally every single fireship video that comes out juices up any dev who watches it. Rumor has it, that if you watch every single fireship video at least three times you become the danger, end up with a six pack, and Javascript will write itself for you as it sings you to sleep

    • @acm1812
      @acm1812 Před 3 lety +12

      Ultimate chad dev

    • @ayushijaiswal9813
      @ayushijaiswal9813 Před 3 lety +12

      his style of not typing the whole code just undoing the snippet is awesome, saves a lot of time and doesn't get bored.
      this is the way tutorials should be.

    • @thecashewtrader3328
      @thecashewtrader3328 Před 2 lety +1

      this

    • @imranq9241
      @imranq9241 Před rokem

      These days JavaScript seems to write itself anyway for better or for worse

    • @Hacking-NASSA-with-HTML
      @Hacking-NASSA-with-HTML Před rokem

      👎👎👎👎👎👎👎 paid bot

  • @ecam90
    @ecam90 Před 3 lety +186

    "This video would be a crazy 20 minutes long or something." - lol. this is why I love this channel.

  • @LoveThatSceneChannel
    @LoveThatSceneChannel Před 3 lety +79

    I need a peer-to-peer connection of this channel to my brain

  • @devsauce
    @devsauce Před 3 lety +423

    After 15 years of software dev, this channel is the best source of concise and nicely presented information for newcomers I've ever seen.
    Wish I had someone like Jeff back in my days. Well done, sir 🔥

    • @abiiranathan
      @abiiranathan Před 3 lety +12

      Not for new comers. Jeff's videos are tailored to intermediate to pro devs

    • @shanglee643
      @shanglee643 Před 3 lety +1

      @@abiiranathan hi. can you help me a little bit. i am in big trouble in trying to generate SHA-1 key to use fire base.
      error: missing keystore
      imgur.com/a/vMV37OA.
      Something about deprecate gradle feature being used causing trouble. How to stop that?

    • @abiiranathan
      @abiiranathan Před 3 lety

      @@shanglee643 This was a web project. Setup for Android is different.

    • @shanglee643
      @shanglee643 Před 3 lety

      @@abiiranathan i found out :
      add 'multidexEnable: true in defaultConfig{}
      at build.gradle(app level)

    • @shanglee643
      @shanglee643 Před 3 lety

      @@abiiranathan no matter what the project, you still need SHA-1 key to use firebase right?

  • @-_-9034
    @-_-9034 Před 3 lety +817

    yes.. now i can finally take down zoom

    • @PotatoMagnet
      @PotatoMagnet Před 3 lety +7

      😂😂😂😂😂😂😂😂😂😂

    • @toxaq
      @toxaq Před 3 lety +24

      Only if you don't want low latency high-res group chat. As-is the host is providing all the bandwidth, it quickly disappears as you add more callers. You'll need a TURN server to host multi-parties reliably and those aren't free.

    • @JosueRodriguez08
      @JosueRodriguez08 Před 3 lety +32

      @@toxaq low latency high res on zoom....hahaha keep dreaming

    • @toxaq
      @toxaq Před 3 lety +8

      @@JosueRodriguez08 I don't use zoom but the setup as in this demo is misleading. It quickly falls apart with any attempt to scale without TURN.

    • @hamzaelalaoui7690
      @hamzaelalaoui7690 Před 3 lety

      😁😁😁😁🤣🤣👌🏻👌🏻

  • @PrasangaBasnayake
    @PrasangaBasnayake Před 3 lety +260

    This video is 11 minutes and 18 seconds long and every second is valuable. Thank you.

    • @anupamadissanayake1299
      @anupamadissanayake1299 Před 3 lety +2

      feels good to know that we have the same nationality

    • @PrasangaBasnayake
      @PrasangaBasnayake Před 3 lety

      @@anupamadissanayake1299 small world!

    • @alan-
      @alan- Před rokem +1

      It would be a more useful tutorial if it was 20 mins long and not trying to compress everything down to the max.

  • @omaryassir5885
    @omaryassir5885 Před 3 lety +296

    This channel is a treasure ✨

  • @istainblack
    @istainblack Před 3 lety +12

    This channel is awesome. My job (in software) often gets me down, but this channel makes me remember the magic! Thank you.

  • @jakubwegrzyn3798
    @jakubwegrzyn3798 Před 3 lety +94

    Thank you for vanilla JS 💪

  • @FilledStacks
    @FilledStacks Před 3 lety +13

    Video chat in 9 minutes! That's awesome, there's actually a lot of companies looking to get this kind of functionality built at the moment. Great video as always! You're Inspiring me to think of a Flutter version if I can get some time.

  • @DavidVerzolla
    @DavidVerzolla Před 3 lety +35

    Would be nice if they make a new 100 videos talking about webRTC and multi-peer connection. Up vote here. 🚀

  • @mbadpa
    @mbadpa Před 3 lety +3

    Most of the new things I learn is from this legendary channel. I hope more people out about it.

  • @talhaibnemahmud
    @talhaibnemahmud Před 3 lety +2

    I was working on a video streaming project and was waiting for this video to implement the feature in the best possible way.
    Thanks a lot!

  • @joaquimley
    @joaquimley Před 3 lety

    I have no words for the quality of your content. Pure gold.

  • @Vivek2062
    @Vivek2062 Před 3 lety +6

    Most awaited video of all time, thanks Jeff! 💯

  • @ranaakhil
    @ranaakhil Před 3 lety +2

    I very clearly remember asking for this in your web sockets video.
    Thank you so much. Your content is the best.

  • @user-cj3yu9nv1u
    @user-cj3yu9nv1u Před 3 lety +2

    Fireship bringing you the latest and greatest tech content. Great video as always! 🔥

  • @krithiksankar2081
    @krithiksankar2081 Před 3 lety +2

    I was just about to start working on a project based on webRTC. Just what I needed. Thanks!!!

  • @arvind6007
    @arvind6007 Před 3 lety +2

    No one can teach u like man, You are a Legend

  • @leoliveirab
    @leoliveirab Před 3 lety +3

    I learn so much on this channel. Great content! Definitely one of the best webdev channels on CZcams. Thanks from Brazil ✌🏼

  • @_romeopeter
    @_romeopeter Před 2 lety

    This was super fun to watch 🔥
    That signaling process did take a while.

  • @cherriepie
    @cherriepie Před 3 lety +4

    I've been wanting to build a video call app for ages!! But the tutorials are on it are so complex!!

  • @CodingNuggets
    @CodingNuggets Před 3 lety +6

    That was hilarious about the cat. I remember seeing that. Really appreciate this video on WebRTC. Very interesting. Much love and respect. See you soon!

  • @eduardointech
    @eduardointech Před 3 lety

    Great format! nice addition to the 100 seconds

  • @temmmbebkd2922
    @temmmbebkd2922 Před 3 lety +2

    Omg i needed this what the heck,the timing is insane 🤯

  • @AS-hs4xk
    @AS-hs4xk Před 3 lety

    Thank you for listening to comments and using vanilla version
    Love your channel

  • @Helleynea
    @Helleynea Před 3 lety

    I didn't even know I wanted this explanation. Thanks.

  • @vineetyadav6978
    @vineetyadav6978 Před 3 lety

    yes, I've been wanting this for so long. thank you good sir!

  • @brindhas8907
    @brindhas8907 Před 2 lety

    Fully fire.. every single second. Thank you for sharing.

  • @shootnado
    @shootnado Před 3 lety

    This video is pure educational mastery.

  • @fahad.hossain
    @fahad.hossain Před 3 lety +1

    I was waiting for this. Thank you.

  • @MiquelCanal
    @MiquelCanal Před 3 lety

    Clean and concise information, great video!
    Thanks for sharing

  • @ThePhrenchen
    @ThePhrenchen Před 3 lety

    will definetly see you in the next one! thank you

  • @_parassolanki
    @_parassolanki Před 3 lety

    Great video.
    My favourite programming channel..

  • @dsi-films1264
    @dsi-films1264 Před 3 lety

    Just what I was looking for, thank you!

  • @birdofhermes6152
    @birdofhermes6152 Před rokem

    Thanks Jeff. The lesson on Fireship was useful.

  • @kettenbach
    @kettenbach Před 3 lety +3

    Makes my day when you mention @angular 😍👊

  • @adityakumar4200
    @adityakumar4200 Před 3 lety

    Thanks for making this video.It gonna help me in my final year project.

  • @scheimong
    @scheimong Před 3 lety +8

    I love how you used the footage from the guy testifying as a cat

  • @igorordecha
    @igorordecha Před 3 lety +30

    People in the poll voting for webRTC demo in React: "The senate will decide your fate"
    Fireship: "I am the senate"

  • @wenniecatabay7094
    @wenniecatabay7094 Před 3 lety

    wow, amazing, simple video but lot of knowledge, Thanks for this tutorial.

  • @erreerre2001
    @erreerre2001 Před 3 lety

    OMG just trying to add video calling on a React Native app with webRtc and I got the notification!!! Awesome!

  • @ramananfinsceal1319
    @ramananfinsceal1319 Před 3 lety +17

    Seriously. I couldn't belive. I was studying abt Web RTC and ur notification popped.
    Are you eavesdropping 🤪

    • @shrn
      @shrn Před 3 lety

      I just started working on a project and it popped up

  • @timurtek
    @timurtek Před 2 lety

    Thank you for the tutorial, this is amazing!

  •  Před 3 lety

    Someone has already told it but thanks for bringing it using Vanilla JS. And also thanks a ton for the quality of the video. :)

  • @parthipankalayini8
    @parthipankalayini8 Před 3 lety +1

    Most hyped && Awaited video 🔥🔥🔥

  • @djsnooppyzatdepoet7568

    Man, you really know how to choose perfect meme videos for the videos. 'Am not a cat'

  • @jonathanchavez9203
    @jonathanchavez9203 Před 3 lety +1

    This series is amazing!!!

  • @lallawmzualakhawlhring7340

    I think I felt my brain just grew watching this.... Thank you for the valuable information. Can you do a short video about OTT(Netflix, Amazon prime type) next kind sir?

  • @islombekhasanov
    @islombekhasanov Před 2 lety

    wow! so easy! thank you Fireguy from Fireship!

  • @unknownman1
    @unknownman1 Před 3 lety +1

    Jesus Christ, the video is so informative. Need to watch all videos of this channel

  • @ThomasOrlita
    @ThomasOrlita Před 3 lety +5

    Awesome tutorial, I wish it existed a few years ago. By the way, not sure if you mentioned it, in cases when a direct connection cannot be established (e.g. in a corporate or school network), you can use a TURN server to relay the media data. I think it might be needed in something like 20% of the cases (not sure).

  • @MisterAndreSafari
    @MisterAndreSafari Před 3 lety +1

    Amazin explaining-skills in this one :-) .... THX for your effort and sharing your talent with us!!

  • @nlattessi
    @nlattessi Před 3 lety +4

    gRPC in 100 seconds please! love your channel ❤️

  • @exyios8493
    @exyios8493 Před 3 lety +6

    OMG this is perfectly timed i was thinking about how to make a video chat app and this dropped thank you!

  • @raniketram
    @raniketram Před 3 lety

    Finally it's here, thanks Jeff

  • @jeromearenas4857
    @jeromearenas4857 Před 3 lety

    Thank you for sharing your knowledge sir.

  • @edwincarlsson9014
    @edwincarlsson9014 Před 3 lety +23

    Oh my christ. I've been looking forward to this.

  • @CodeJan
    @CodeJan Před 3 lety

    Omg, I've searched for that yesterday!!!

  • @chillmusichour
    @chillmusichour Před 3 lety +1

    You're the absolute man Jeff

  • @chanokplaisub3586
    @chanokplaisub3586 Před 7 měsíci

    This is really work🎉🎉 good explanations and examples

  • @baolee4622
    @baolee4622 Před 3 lety

    so advanced. I need time to cover it. btw, it's so useful. many tks

  • @dr.d3600
    @dr.d3600 Před 3 lety

    Through Jeff everything are clear!

  • @carlomigueldy
    @carlomigueldy Před 3 lety

    Fireship is the best YT dev channel

  • @hitthemoney
    @hitthemoney Před 3 lety

    I have been waiting for this!

  • @ViniciusBuscacio
    @ViniciusBuscacio Před rokem

    This channel is incredible!!!

  • @YexyYT
    @YexyYT Před 2 lety +12

    For all those here in 2022 this tutorial is for an older version of the Firebase SDK. The newer SDK is in modular which require different import notation and greatly changed syntax. Please be weary when following. The is a great reference to learn from but there are much more up to date options out there right now.

    • @dandyiy
      @dandyiy Před 2 lety

      thx

    • @Daniel32396
      @Daniel32396 Před 2 lety

      Can you point us to some updated instructions? What do you recommend for streaming very low latency video? That's all I'm interested in.

    • @beng6319
      @beng6319 Před 2 lety

      I've been trying to get this to work for about a week now. I feel so lost.

    • @vovithenoob
      @vovithenoob Před rokem

      would be appriciated if someone knows the updated import, can't find it. Thanks

  • @juanmartinguillen4876
    @juanmartinguillen4876 Před 3 lety +6

    Beside the fact that the contents of the video excels in many aspects, I would like to highlight the fact that it does not follow the illusion dominating the development scene where everything should be React or it is not considered web development anymore. Thank you for that.

  • @anouarzougrar8332
    @anouarzougrar8332 Před 3 lety

    JUST.. THANK YOU MAN 🙌🏻🙌🏻

  • @danielborges.
    @danielborges. Před 3 lety +1

    Great tutorial! I would love to see one tut about webrtc with angular. Take care.

  • @simonbrandner
    @simonbrandner Před 3 lety +4

    Great video! A video about MCUs, SFUs, meshing and multi-stream WebRTC would be awesome!

    • @Fireship
      @Fireship  Před 3 lety +21

      If there's enough demand, I would make a full course that covers multiple connections and tradeoffs of different approaches.

    • @yitzchakpachtman9664
      @yitzchakpachtman9664 Před 3 lety

      @@Fireship SIP B2B UA's like Asterisk also offer SFUs. Very few people have figured it out with Asterisk tho. I would purchase the course if you make one!

    • @raivatshah7781
      @raivatshah7781 Před 3 lety +2

      @@Fireship There is demand!! Pls do one on multi-stream!! And if possible, can you please cover the Data Channel as well?

    • @Hacking-NASSA-with-HTML
      @Hacking-NASSA-with-HTML Před rokem

      👎👎👎👎👎👎👎 paid bot

  • @abiiranathan
    @abiiranathan Před 3 lety

    Just as promised. Thanks Jeff

  • @alherrera9390
    @alherrera9390 Před 3 lety

    It just works. But a third party can still directly see and even store your streams. I´d use sockets over my own infraestructure for enterprise apps, totally worth the extra time for implementation.

  • @kecoje
    @kecoje Před 3 lety

    Where do you get ideas for all these videos? You're following all the latest tech trends. Great video

  • @Nermin913
    @Nermin913 Před 3 lety

    I have never subscribed this fast

  • @muheirwe
    @muheirwe Před 3 lety

    You guys are amazing thanks

  • @lakshaynz
    @lakshaynz Před rokem

    Magic! Thank you

  • @pranavbonthala1242
    @pranavbonthala1242 Před 3 lety +1

    lol so early for the first time
    Btw very nice video man!

  • @tuxdoesstuff
    @tuxdoesstuff Před 3 lety

    Finally- Thank you ❤️

  • @galnahum4349
    @galnahum4349 Před 3 lety +1

    Finally, a professional video about WebRTC technology, which respects your time as a user and touches on the main topics and does not deal with nonsense.

  • @deathkillertech
    @deathkillertech Před 3 lety

    You surpass my expectations

  • @eddwinpaztl
    @eddwinpaztl Před 2 lety

    it would be interesting if you could make a websocket version of it. this is the most clean code I've seen amoung other tutorials.

  • @Babakinha
    @Babakinha Před 3 lety +4

    Finally, i tried WebRTC a year ago and didn't understand nothing, now im building discord 2 lol

  • @adelarsq
    @adelarsq Před 3 lety

    You are my hero! 👏🏻

  • @prakhyathshetty
    @prakhyathshetty Před 3 lety

    Most awaited!!

  • @justins4996
    @justins4996 Před 3 lety

    Fantastic! Thanks!

  • @maulikshah28
    @maulikshah28 Před 3 lety +1

    This is beautiful

  • @vuelancer
    @vuelancer Před 3 lety

    Using vitejs is a complete surprise for me!

  • @polyhead
    @polyhead Před 2 lety

    Fireship....you are better than best

  • @muheirwe
    @muheirwe Před 3 lety

    Nice video thank you

  • @shubhammane542
    @shubhammane542 Před 3 lety

    This Channel is a 💎.

  • @maoryatskan6346
    @maoryatskan6346 Před 3 lety

    Thank you so much, exactly what I was looking for.

  • @AB-md4kt
    @AB-md4kt Před 3 lety +1

    Awesome video ! However the way WebRTC establishes the connection raises the question of whether an IP leak is possible to one of the peers. Thanks.

  • @arnavbansal8159
    @arnavbansal8159 Před 3 lety +1

    Hey! Great Video! Could you also please make an example for one to many video calling?

  • @mohanaggarwal4058
    @mohanaggarwal4058 Před 3 lety

    Literally, one of the best youtube channel for web developers and enthusiasts!!😍😍

  • @professeurish
    @professeurish Před rokem

    Thank you man

  • @Barrosy
    @Barrosy Před 11 měsíci +1

    Valuable information in a very short amount of time. I understood the beginning but once into programming part, beyond the peer connection object part you started to lose me. Mainly because I do not understand why you chose to utilize mentioned third party objects and mentioned methods. I will definitely dig deeper in this if I have the chance to do so, however for those interested I would suggest you to make a more elaborate guide on this and get into the details. For example try to explain what problems you faced trying to establish the web app and what solutions you used and for what reason.

  • @dubey_ji
    @dubey_ji Před 2 lety

    This guy is OG

  • @egrabe31
    @egrabe31 Před 3 lety

    Middle-out file compression will really make the video sharp.

  • @Stoney_Eagle
    @Stoney_Eagle Před 3 lety +2

    Thanks for going vanilla 😉