Currently, we have a YouTube iFrame API setup with the following (pretty boilerplate) code:
The workaround I found is to create the player with no videoId
, never call setPlaybackQuality
anywhere else, but call loadVideoById(videoId, 0, 'small')
inside of your onReady
handler. This was respected on both Android and iOS when tested, calling onPlaybackQualityChanged
with 'small'
once on Android and Desktop and twice on iOS, never forcing medium quality.
Unfortunately, if you pass 'tiny'
, it doesn't seem to work. On most videos, it will force 'small'
; in my experience, however, it's forced 'medium'
before. Be aware of that.