Open insin opened 2 months ago
There's an expando API on the #movie_player element:
#movie_player
>> Object.keys(movie_player).filter(k => k.toLowerCase().includes('quality')).sort() ← Array(11) [ "getAvailableQualityData", "getAvailableQualityDataAndMessaging", "getAvailableQualityLabels", "getAvailableQualityLevels", "getMaxPlaybackQuality", "getPlaybackQuality", "getPlaybackQualityLabel", "getPreferredQuality", "getUserPlaybackQualityPreference", "setPlaybackQuality", … ] >> movie_player.getAvailableQualityLevels() ← Array(5) [ "hd1080", "hd720", "medium", "tiny", "auto" ]
>> Object.keys(movie_player).filter(k => k.toLowerCase().includes('quality')).sort()
← Array(11) [ "getAvailableQualityData", "getAvailableQualityDataAndMessaging", "getAvailableQualityLabels", "getAvailableQualityLevels", "getMaxPlaybackQuality", "getPlaybackQuality", "getPlaybackQualityLabel", "getPreferredQuality", "getUserPlaybackQualityPreference", "setPlaybackQuality", … ]
>> movie_player.getAvailableQualityLevels()
← Array(5) [ "hd1080", "hd720", "medium", "tiny", "auto" ]
setPlayBackQuality(quality) doesn't seem to do anything (just a web component setter method perhaps?), but setPlaybackQualityRange(quality) does what we want
setPlayBackQuality(quality)
setPlaybackQualityRange(quality)
Quality data from an 8K video:
>> movie_player.getAvailableQualityData() ← Array(9) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…} ] 0: Object { qualityLabel: "4320p60", quality: "highres", isPlayable: true, … } 1: Object { qualityLabel: "2160p60", quality: "hd2160", isPlayable: true, … } 2: Object { qualityLabel: "1440p60", quality: "hd1440", isPlayable: true, … } 3: Object { qualityLabel: "1080p60", quality: "hd1080", isPlayable: true, … } 4: Object { qualityLabel: "720p60", quality: "hd720", isPlayable: true, … } 5: Object { qualityLabel: "480p", quality: "large", isPlayable: true, … } 6: Object { qualityLabel: "360p", quality: "medium", isPlayable: true, … } 7: Object { qualityLabel: "240p", quality: "small", isPlayable: true, … } 8: Object { qualityLabel: "144p", quality: "tiny", isPlayable: true, … }
Bogudan's userscript Youtube polymer engine fixes has that option: set video quality (disables auto quality).
set video quality (disables auto quality)
The setting stays sticky between vids.
There's an expando API on the
#movie_player
element:setPlayBackQuality(quality)
doesn't seem to do anything (just a web component setter method perhaps?), butsetPlaybackQualityRange(quality)
does what we wantQuality data from an 8K video: