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

Поделиться
HTML-код
  • Опубликовано: 30 июн 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
  • НаукаНаука

Комментарии • 441

  • @ecam90
    @ecam90 3 года назад +185

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

  • @klutch4198
    @klutch4198 3 года назад +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 3 года назад +12

      Ultimate chad dev

    • @ayushijaiswal9813
      @ayushijaiswal9813 3 года назад +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 2 года назад +1

      this

    • @imranq9241
      @imranq9241 Год назад

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

    • @Hacking-NASSA-with-HTML
      @Hacking-NASSA-with-HTML Год назад

      👎👎👎👎👎👎👎 paid bot

  • @LoveThatSceneChannel
    @LoveThatSceneChannel 3 года назад +79

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

  • @devsauce
    @devsauce 3 года назад +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 3 года назад +12

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

    • @shanglee643
      @shanglee643 3 года назад +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 3 года назад

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

    • @shanglee643
      @shanglee643 3 года назад

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

    • @shanglee643
      @shanglee643 3 года назад

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

  • @PrasangaBasnayake
    @PrasangaBasnayake 3 года назад +259

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

    • @anupamadissanayake1299
      @anupamadissanayake1299 3 года назад +2

      feels good to know that we have the same nationality

    • @PrasangaBasnayake
      @PrasangaBasnayake 3 года назад

      @@anupamadissanayake1299 small world!

    • @alan-
      @alan- Год назад +1

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

  • @-_-9034
    @-_-9034 3 года назад +816

    yes.. now i can finally take down zoom

    • @PotatoMagnet
      @PotatoMagnet 3 года назад +7

      😂😂😂😂😂😂😂😂😂😂

    • @toxaq
      @toxaq 3 года назад +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 3 года назад +32

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

    • @toxaq
      @toxaq 3 года назад +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 3 года назад

      😁😁😁😁🤣🤣👌🏻👌🏻

  • @omaryassir5885
    @omaryassir5885 3 года назад +296

    This channel is a treasure ✨

  • @istainblack
    @istainblack 3 года назад +12

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

  • @FilledStacks
    @FilledStacks 3 года назад +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 3 года назад +35

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

  • @talhaibnemahmud
    @talhaibnemahmud 3 года назад +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!

  • @mbadpa
    @mbadpa 3 года назад +3

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

  • @ranaakhil
    @ranaakhil 3 года назад +2

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

  • @Vivek2062
    @Vivek2062 3 года назад +6

    Most awaited video of all time, thanks Jeff! 💯

  • @joaquimley
    @joaquimley 3 года назад

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

  • @user-cj3yu9nv1u
    @user-cj3yu9nv1u 3 года назад +2

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

  • @leoliveirab
    @leoliveirab 3 года назад +3

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

  • @krithiksankar2081
    @krithiksankar2081 3 года назад +2

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

  • @jakubwegrzyn3798
    @jakubwegrzyn3798 3 года назад +94

    Thank you for vanilla JS 💪

  • @_romeopeter
    @_romeopeter 2 года назад

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

  • @cherriepie
    @cherriepie 3 года назад +4

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

  • @igorordecha
    @igorordecha 3 года назад +30

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

  • @CodingNuggets
    @CodingNuggets 3 года назад +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!

  • @fahad.hossain
    @fahad.hossain 3 года назад +1

    I was waiting for this. Thank you.

  • @lallawmzualakhawlhring7340
    @lallawmzualakhawlhring7340 3 года назад +4

    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?

  • @eduardointech
    @eduardointech 3 года назад

    Great format! nice addition to the 100 seconds

  • @arvind6007
    @arvind6007 3 года назад +2

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

  • @temmmbebkd2922
    @temmmbebkd2922 3 года назад +2

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

  • @vineetyadav6978
    @vineetyadav6978 3 года назад

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

  • @ThomasOrlita
    @ThomasOrlita 3 года назад +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).

  • @jonathanchavez9203
    @jonathanchavez9203 3 года назад +1

    This series is amazing!!!

  • @parthipankalayini8
    @parthipankalayini8 3 года назад +1

    Most hyped && Awaited video 🔥🔥🔥

  • @AS-hs4xk
    @AS-hs4xk 3 года назад

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

  • @brindhas8907
    @brindhas8907 2 года назад

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

  • @dsi-films1264
    @dsi-films1264 3 года назад

    Just what I was looking for, thank you!

  • @MiquelCanal
    @MiquelCanal 3 года назад

    Clean and concise information, great video!
    Thanks for sharing

  • @Helleynea
    @Helleynea 3 года назад

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

  • @ramananfinsceal1319
    @ramananfinsceal1319 3 года назад +17

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

    • @shrn
      @shrn 3 года назад

      I just started working on a project and it popped up

  • @scheimong
    @scheimong 3 года назад +8

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

  • @raniketram
    @raniketram 3 года назад

    Finally it's here, thanks Jeff

  • @ThePhrenchen
    @ThePhrenchen 3 года назад

    will definetly see you in the next one! thank you

  • @adityakumar4200
    @adityakumar4200 3 года назад

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

  • @chillmusichour
    @chillmusichour 3 года назад +1

    You're the absolute man Jeff

  • @hitthemoney
    @hitthemoney 3 года назад

    I have been waiting for this!

  • @timurtek
    @timurtek 2 года назад

    Thank you for the tutorial, this is amazing!

  • @birdofhermes6152
    @birdofhermes6152 Год назад

    Thanks Jeff. The lesson on Fireship was useful.

  • @wenniecatabay7094
    @wenniecatabay7094 3 года назад

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

  • @_parassolanki
    @_parassolanki 3 года назад

    Great video.
    My favourite programming channel..

  • @kettenbach
    @kettenbach 3 года назад +3

    Makes my day when you mention @angular 😍👊

  • @anouarzougrar8332
    @anouarzougrar8332 3 года назад

    JUST.. THANK YOU MAN 🙌🏻🙌🏻

  • @MisterAndreSafari
    @MisterAndreSafari 3 года назад +1

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

  • @shootnado
    @shootnado 3 года назад

    This video is pure educational mastery.

  • @islombekhasanov
    @islombekhasanov 2 года назад

    wow! so easy! thank you Fireguy from Fireship!

  • @kecoje
    @kecoje 3 года назад

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

  • @ViniciusBuscacio
    @ViniciusBuscacio Год назад

    This channel is incredible!!!

  • @erreerre2001
    @erreerre2001 3 года назад

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

  •  3 года назад

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

  • @exyios8493
    @exyios8493 3 года назад +6

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

  • @danielborges.
    @danielborges. 3 года назад +1

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

  • @CodeJan
    @CodeJan 3 года назад

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

  • @djsnooppyzatdepoet7568
    @djsnooppyzatdepoet7568 3 года назад

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

  • @YexyYT
    @YexyYT 2 года назад +11

    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 2 года назад

      thx

    • @Daniel32396
      @Daniel32396 2 года назад

      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 2 года назад

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

    • @vovithenoob
      @vovithenoob Год назад

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

  • @nlattessi
    @nlattessi 3 года назад +4

    gRPC in 100 seconds please! love your channel ❤️

  • @unknownman1
    @unknownman1 3 года назад +1

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

  • @tuxdoesstuff
    @tuxdoesstuff 3 года назад

    Finally- Thank you ❤️

  • @chanokplaisub3586
    @chanokplaisub3586 6 месяцев назад

    This is really work🎉🎉 good explanations and examples

  • @carlomigueldy
    @carlomigueldy 3 года назад

    Fireship is the best YT dev channel

  • @jeromearenas4857
    @jeromearenas4857 3 года назад

    Thank you for sharing your knowledge sir.

  • @prakhyathshetty
    @prakhyathshetty 3 года назад

    Most awaited!!

  • @adelarsq
    @adelarsq 3 года назад

    You are my hero! 👏🏻

  • @baolee4622
    @baolee4622 3 года назад

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

  • @justins4996
    @justins4996 3 года назад

    Fantastic! Thanks!

  • @juanmartinguillen4876
    @juanmartinguillen4876 3 года назад +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.

  • @edwincarlsson9014
    @edwincarlsson9014 3 года назад +22

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

  • @abiiranathan
    @abiiranathan 3 года назад

    Just as promised. Thanks Jeff

  • @eddwinpaztl
    @eddwinpaztl 2 года назад

    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.

  • @dr.d3600
    @dr.d3600 3 года назад

    Through Jeff everything are clear!

  • @lakshaynz
    @lakshaynz Год назад

    Magic! Thank you

  • @muheirwe
    @muheirwe 2 года назад

    You guys are amazing thanks

  • @pranavbonthala1242
    @pranavbonthala1242 3 года назад +1

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

  • @maulikshah28
    @maulikshah28 3 года назад +1

    This is beautiful

  • @shubhammane542
    @shubhammane542 3 года назад

    This Channel is a 💎.

  • @Tomasrts
    @Tomasrts 3 года назад

    Great content 🔥

  • @professeurish
    @professeurish Год назад

    Thank you man

  • @simonbrandner
    @simonbrandner 3 года назад +4

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

    • @Fireship
      @Fireship  3 года назад +21

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

    • @yitzchakpachtman9664
      @yitzchakpachtman9664 3 года назад

      @@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 3 года назад +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 Год назад

      👎👎👎👎👎👎👎 paid bot

  • @Nermin913
    @Nermin913 3 года назад

    I have never subscribed this fast

  • @muheirwe
    @muheirwe 2 года назад

    Nice video thank you

  • @deathkillertech
    @deathkillertech 3 года назад

    You surpass my expectations

  • @alherrera9390
    @alherrera9390 3 года назад

    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.

  • @arnavbansal8159
    @arnavbansal8159 3 года назад +1

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

  • @aungthurawin9710
    @aungthurawin9710 2 года назад

    Very good video

  • @Babakinha
    @Babakinha 3 года назад +4

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

  • @AB-md4kt
    @AB-md4kt 3 года назад +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.

  • @maoryatskan6346
    @maoryatskan6346 3 года назад

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

  • @andrewvanbeek081
    @andrewvanbeek081 3 года назад +1

    Hey Fireship, I am working on a streaming project too so as always awesome video! Quick question, but does this demo reveal the local and public ip addresses similar to how people were abusing Omegle(i think also using webrtc)? And if it does, would you need a turn server to prevent that?

    • @andrewvanbeek081
      @andrewvanbeek081 3 года назад

      Sidenote this is like my favorite Dev Channel!

  • @galnahum4349
    @galnahum4349 3 года назад +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.

  • @Barrosy
    @Barrosy 11 месяцев назад +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.

  • @Stoney_Eagle
    @Stoney_Eagle 3 года назад +2

    Thanks for going vanilla 😉

  • @cristianmari1226
    @cristianmari1226 3 года назад

    more of webrtc !!!

  • @mohanaggarwal4058
    @mohanaggarwal4058 3 года назад

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