0

ページを通過し、選択されたすべての要素を返すスクリプトがあります。この場合は、<embed...>

たとえば、YouTube ビデオがブログで見つかった場合、iframe が返されます。iframe src を取得して関数に渡し、ビデオ ID を正規表現できます。ただし、YouTube 動画が YouTube ページ内にある場合は、埋め込み方法が異なり、動画 ID は「flashvars」属性内にあります。

ビデオの埋め込みの例を次に示します: http://pastie.org/7155840

qlo5XHZ8-zIsrc を YouTube として確認し、そこからビデオ ID を取得する最良の方法を教えてください。

4

1 に答える 1

2

正規表現を使用しないソリューションを次に示します。

まず、YouTube であることを確認します。

if (e.src.substr(0, 19) != "http://s.ytimg.com/") return false

次に、ビデオ ID を抽出します。

// get the flashvars
var flashvars = e.getAttribute("flashvars")
// convert flashvars string to key-value pairs
flashvars = flashvars.split("&").map(function(entry) {
  return entry.split("=", 2)
})
// look up the value of the "video_id" key
var video_id = flashvars.filter(function(entry) {
  return entry[0] == "video_id"
})[0]

video_idが動画の ID になるはずです。

于 2013-03-28T22:42:20.937 に答える