WebRTC with Django, Channels, HTMX, and coturn with Ken Whitesell
summary
Builds a Django‑based group video conferencing system that actually runs a live demo and exposes the practical tradeoffs: uses Channels as the signalling mechanism, uses HTMX for page‑content management, and uses coturn as the NAT traversal and gateway server. Implements ICE/STUN/TURN and exchanges SDP offers via JSON over channels, handles the polite/impolite perfect‑negotiation rule, and shows how a 10‑person room creates ~90 peer connections and on the order of 10k messages so channel capacity, TURN bandwidth, and scaling become real constraints.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:03Why this WebRTC demo
- 2:30WebRTC history and challenges
- 4:16WebRTC with Django architecture
- 6:04Core components: Django Channels HTMX coturn
- 7:56HTMX WebSocket plugin
- 11:09WebRTC events via JSON
- 15:28Group call setup
- 19:27Network negotiation challenges
- 21:11ICE protocol paths
- 22:16coturn: STUN and TURN
- 24:25How STUN servers identify public IPs
- 26:15TURN as data hub
- 29:10Session Description Protocol
- 31:37Perfect negotiation protocol
- 33:47Polite vs impolite roles
- 36:22Media stream assignment
- 37:05Live demo and future
- 38:54Q&A
related talks
22mDjango Channels Teaching a mature framework new tricks
29mBuilding real time applications with Django
34mWebRTC talk for OdessaJS
21mDemystifying WebRTC
37mWebRTC: From The Ground Up
45mKeynote: Architecting with Channels
55mWorkshop 1 - Let's Make a Realtime Game with Django Channels
26m#javascript Audio/Video Streaming: #WebRTC APIs 101 explained
