成功したロードの1つは、次のようなものです。
http://gdata.youtube.com/feeds/api/videos/N7m86aMNjlQ?callback=jsonp1335008664824&alt=json-in-script
ただし、動画が非公開または存在しない場合は、httpエラーステータスコードを含むメッセージのみが返されます。
http://gdata.youtube.com/feeds/api/videos/zkZBEnBjOjY?callback=jsonp1335008664915&alt=json-in-script
「jsonp1335008664824」のような一意のコールバック関数名の例を作成し、スクリプトタグのsrcとしてURLを追加し、スクリプトが読み込まれたときに関数をキャッチします。ただし、エラーが返された場合、YouTubeはコンテンツをコールバック関数として返さないため、いずれもキャッチできません。スクリプトタグには「onerror」属性がないため、ロードされているのか、404または503ステータスコードなどのエラーが返されたのかさえわかりません。
スクリプトタグを追加するときにタイムアウト関数を設定することが、それを処理する唯一の理由のようです。しかし、それは信頼できる方法ではないので、私は別のオプションを探しています。ステータスコードをキャッチしてもエラーメッセージが表示されないことはわかっていますが、ステータスコードは2つと、「ビデオが見つかりません」の場合は404、「ビデオはプライベート」の場合は503の2つのエラーしかありません。