0

自分の Web サイトで oembed for youtube を使用するには、開発者のキーが必要ですか?

問題は、次のコードが機能しないことです, 成功に戻りません

 $.ajax({
                    url: "http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=PVzljDmoPVs",
                    dataType: "jsonp",
                    timeout: 15000,
                    success: function (jo) {
                        if (jo) {
                            setIMg(jo.thumbnail_url);
                            setTitle(jo.title);
                        }
                    }
                });

しかし、ブラウザでURLを起動すると、jsonが表示されます:

{"provider_url": "http:\/\/www.youtube.com\/", "thumbnail_url": "http:\/\/i1.ytimg.com\/vi\/PVzljDmoPVs\/hqdefault.jpg", "title": "David Guetta - She Wolf (Falling To Pieces) ft. Sia", "html": "\u003ciframe width=\"480\" height=\"270\" src=\"http:\/\/www.youtube.com\/embed\/PVzljDmoPVs?fs=1\u0026feature=oembed\" frameborder=\"0\" allowfullscreen\u003e\u003c\/iframe\u003e", "author_name": "davidguettavevo", "height": 270, "thumbnail_width": 480, "width": 480, "version": "1.0", "author_url": "http:\/\/www.youtube.com\/user\/davidguettavevo", "provider_name": "YouTube", "type": "video", "thumbnail_height": 360}

4

2 に答える 2

1

まず、YouTubeのoembedエンドポイントを使用するために開発者キーは必要ありません。

次に、YouTubeはoEmbedエンドポイントでJSONPをサポートしていません。これが、通話が失敗する理由です。これを修正するには、 reEmbed.meなどのサードパーティのoEmbedプロバイダーを使用できます。

サンプルコードは次のとおりです。

var serviceUrl = "http://reembed.me/api/v1/OEmbed?url=";
var url = "http://www.youtube.com/watch?v=PVzljDmoPVs";
$.getJSON(serviceUrl + encodeURIComponent(url) + "&callback=?", null, function (jo) {
    if (jo) {
        setIMg(jo.thumbnail_url);
        setTitle(jo.title);
    }
});

渡されるリンクは実際のビデオURLであり、oembedエンドポイントリンクではないことに注意してください。

于 2012-10-17T22:45:59.847 に答える