Reddit: Making Android Videos Super Fast
Article Summary
Reddit cut video loading time in half on Android. Here's how they did it with ExoPlayer optimization, player pooling, and smart prefetching strategies.
Reddit's Android team shares their latest round of video performance improvements, building on last year's work. They tackled observability, loading speed, device-specific playback issues, and made strategic trade-offs to support millions of users across varying devices and networks.
Key Takeaways
- Player pooling reduced frozen frames by 18% in Brazil, 13% in Mexico
- Prewarming videos before viewport entry: 19% more start under 250ms
- Custom codec selector cut decoder errors from 100K to 30K daily
- Aggressive prefetching reduced 2+ second loads by 4.8% but increased HTTP latency
- Staying updated with ExoPlayer releases gave 14% improvement for free
Through player pooling, strategic prefetching, and decoder management, Reddit achieved approximately 50% reduction in video loading time across their Android app.
About This Article
Reddit found that 47% of video sessions weren't being reported correctly. Missing events and race conditions in their analytics pipeline made it hard to measure whether performance improvements actually worked.
Alexey Bykov's team built a single-event setup using Media3's AnalyticsListener and PlaybackStatsListener. They tracked key events like starts, stalls, and failures more reliably this way.
With better visibility into what was happening, they could measure video loading time improvements and exit-before-start rates accurately. This let them confirm that their optimizations really did cut loading time by 50%.