Sleipnir において一部のYoutube埋め込み動画でシークバーが出ない現象に対処してみた

必要は発明の母

どういう現象なのかというと下の画像の通りにシークバーが表示されないというものです。
これによって動画のシークが出来ないほか、音量変更が出来なかったりや動画の尺を知ることも出来なかったりします。*1

↑理想(というか今まで)

↑現実
なお、この問題の発生環境については調べていません。


で、実は去年の晩秋には発生していたのですが、個人的には困ることも無かったのでスルーしてました。
しかし、今日ちょっと困ったので対処することにしました。


少し調べてみた感じ私の環境ではiframeタグを使う新しい埋め込みプレイヤーで発生し、objectタグを使う旧型のプレイヤーでは問題ないようでした。
そして、色々と試してみた結果src属性の「http://www.youtube.com/embed/動画ID」を「http://www.youtube.com/v/動画ID」とすれば良いようです。
ということでUAスクリプトを作ってみました。

ShowYouTubeEmbedControl.js

(function() {
	var ifr = document.getElementsByTagName("iframe");
	for(var i = 0, len = ifr.length; i < len; i++) {
		if(ifr[i].src.match(/^http:\/\/www\.youtube\.com\/embed\//i)) {
			ifr[i].src = ifr[i].src.replace(/embed/i, "v");
		}
	}
})();

例のごとく自己責任で。もし動かなくても泣かない。

*1:ただし、パラメータに"disablekb=1"を意図的につけない限りはキーボードで操作できる……らしい( https://developers.google.com/youtube/player_parameters?hl=ja