2020/12/21 YouTube oEmbed APIの仕様が変わった
schemeがhttpのAPI URLが403を返すようになった
これまではhttpsにリダイレクトしていたと思われる
code:curl
{
"error": {
"code": 403,
"message": "SSL is required to perform this operation.",
"status": "PERMISSION_DENIED"
}
}
対策
schemeをhttpsに変更する
現代ならhttpsでしょ、というのは分かるけどリダイレクトも潰すのは過激ではないのか
関連するページ
oEmbed APIのURLを差し替えるPR
oEmbed APIでHTTPSを強制するようにした、HTTPなAPIをまた使えるようにする予定はない、とのこと
2021/5/26 にlinkタグのURLがhttpsになっていることが確認された
oEmbed APIが返す動画 (のiframe) のサイズが小さくなった
code:curl
{
"title": "ORIGINAL SONG 失礼しますが、RIP♡ || “Excuse My Rudeness, But Could You Please RIP?” - Calliope Mori", "author_name": "Mori Calliope Ch. hololive-EN",
"type": "video",
"height": 113,
"width": 200,
"version": "1.0",
"provider_name": "YouTube",
"thumbnail_height": 360,
"thumbnail_width": 480,
}
200x113 のiframeが返ってくるようになった
https://gyazo.com/a587fedabf0dafb145b6f78972553a0b
対策
oEmbed APIへのリクエストに maxwidth maxheight を指定する
もともと 560x315 のiframeが返ってきていたので &maxwidth=560&maxheight=315 を追加する
code:curl
{
"title": "ORIGINAL SONG 失礼しますが、RIP♡ || “Excuse My Rudeness, But Could You Please RIP?” - Calliope Mori", "author_name": "Mori Calliope Ch. hololive-EN",
"type": "video",
"height": 315,
"width": 560,
"version": "1.0",
"provider_name": "YouTube",
"thumbnail_height": 360,
"thumbnail_width": 480,
}
アスペクト比が 16:9 でない動画の場合はwidthがちょっと小さくなる (460x315 とかになる)
動画の端が切れるようなことはなかった
maxwidth, maxheightは埋め込みたいコンテンツのサイズの「最大値」を指示するものなので、普通に考えるとこのパラメータで動画サイズが大きくなるのはおかしい気がする
これ以外にoEmbed APIの規格上ではサイズを指示するものがないといえばそうかもしれんが……
oEmbed APIから返ってくるHTMLのiframeタグのwidth, heightを書き換える
多くの場合は 560x315 決め打ちで問題ないと思う
YouTubeの動画ページで入手できる埋め込みコードでも、動画のサイズに関わらず 560x315 のiframeを返している
https://gyazo.com/9194c1ef321edbab7b77be42b13591a7
↓この動画です (アスペクト比は 4:3)
https://www.youtube.com/watch?v=7g9Ria9SsPI