web-dev-qa-db-ja.com

カスタム投稿タイプのサムネイルとして外部ビデオのサムネイルを取得する?

他にも似たようなスレッドがいくつかありますが、それらはすべてYouTubeビデオ用です。 blipのように他のサーバーでホストされているビデオについても同じことができるのかどうかと思いました。以下はblipビデオの例です。 http://blip.tv/file/4778330

これが私が現在設定している方法です。

埋め込みコードのsrc(video_src)のメタボックスを持つVideosのカスタム投稿タイプがあるので、srcを入力するだけで、single-videos.phpテンプレートから表示されます。

<embed src="<?=$video_src?>" type="application/x-shockwave-flash" width="400" height="200" allowscriptaccess="always" allowfullscreen="true" />

どういうわけかビデオのフレームがその投稿の注目のサムネイルになったなら、それは素晴らしいでしょう。このようなことをどのようにして行うことができるかについての考えはありますか?

1
J82

Blip TV APIを使用できます。

http://wiki.blip.tv/index.php/Blip.tv_API

「アイテムのサムネイルを見つけるにはどうすればよいですか」を探します。 APIの例は、ウィキに見出すことができる。 PHPの例:

include_once("blipPHP.php");
$blipPHP = new blipPHP("username", "password");
$respond = $blipPHP->info(4794325);

lONG配列を返します。この中にあなたが見つけます:

[3] => SimpleXMLElement Object
                                    (
                                        [@attributes] => Array
                                            (
                                                [rel] => alternate
                                                [type] => application/rss+xml
                                                [href] => http://blip.tv/rss/4812438
                                            )

                                    )

今すぐ http://blip.tv/rss/4812438 を呼び出すために電話をかけます(あなたはブラウザでこれをチェックすることができます)

そして、あなたが見つけたように与えられたxpath式のように、あなたはthumnailのために返されたコンテンツを解析することができます:

<media:thumbnail url="http://a.images.blip.tv/Oldjewstellingjokes-AdrianeBergPastorFuzz165.jpg"/>

さて...多分あなたはいくつかの質問があります:

1文字列のURL(URI)を取得するためのプログラムを作成する方法

WordPressはそのためのデフォルトメソッドを提供しています。wp_remote_get:READ: http://codex.wordpress.org/HTTP_APIhttp://core.trac.wordpressも参照してください) .org/ticket/4779

2わかりました...今、私は文字列でいくつかのウェブサイトを持っています私はそれで何をしますか?

あなたが考えることができるものは何でも、それが「XML」関連ではないものであれば、おそらく文字列から内容を解析するためにスマートな正規表現を使うでしょう。 (php regexを見てください)

しかし、.... ....自分で読みやすくするには、DOMの文字列を読み、次にXPathを使用してコンテンツをすばやくスキャンします。 (google:xpathまたはphp.net:xpathを参照)

$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->strictErrorChecking = false;
if (!$dom->loadHTML($data)) 
{
   foreach (libxml_get_errors() as $error) 
   {
     //     handle errors here
    }
    libxml_clear_errors();      
} 
else
{
   $xpath = new DOMXPath($dom);
   $elements = $xpath->query('/rss/channel/item/media:thumbnail/@url');

多田!私たちが見つけたサムネイル:

3
edelwater

肝心なのは、すべてのサービスに独自のAPIやメソッドなどがあるため、一般的な方法はおそらくないということです。

1
Otto

もっと一般的な方法が必要な場合は、動画のthumbnail_urlプロパティをサポートするoEmbedを試すことができます。多くのサイトでoEmbedサポートが組み込まれていますが、 oohEmbed または Embedly で多数のサポートがあります同じAPIを介してより多くのサービス。

たとえば、 動画に対するoohEmbedリクエスト は、次の情報を返します。

{
    "type": "video",
    "version": "1.0",
    "title": "WEBISODE 14 - The Bay - Chapter 4 - Part 2",
    "author_name": "TheBaytheSeries",
    "author_url": "http://TheBaytheSeries.blip.tv",
    "provider_name": "blip.tv",
    "provider_url": "http://blip.tv",
    "width": 720,
    "height": 436,
    "html": "<embed src=\"http://blip.tv/play/AYKk4RQC\" type=\"application/x-shockwave-flash\" width=\"720\" height=\"436\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed>",
    "thumbnail_url": "http://a.images.blip.tv/Thebaytheseries-WEBISODE14TheBayChapter4Part2721.png",
    "thumbnail_width": 720,
    "thumbnail_height": 436 
}
1
Jan Fabry

各ビデオ用に作成されたサムネイルブリップはyoutubeのようなものではないように思われます。そこで、videoidを使用してそれを把握できます。

これがblipからのあなたのビデオ/親指のうちの2つです:

http://blip.tv/file/4778330 http://a.images.blip.tv/Thebaytheseries-WEBISODE14TheBayChapter4Part2721-711.jpg

http://blip.tv/file/4690791 http://a.images.blip.tv/Thebaytheseries-THEBAYTheSeriesSOMETHINGSADMusicVideoByTedKorsmo777-169.jpg

それでそれは可能に見えません。

0
Scott Elkin