YouTubeの動画からブログ記事のアイキャッチ画像を自動的に作成する方法

wordpress

このブログでは各記事のアイキャッチ画像を作成するのに「Auto Post Thumbnail」というプラグインを使用しています。各記事の最初の画像をアイキャッチとして自動登録してくれるというスグレモノなプラグインです。

ただ画像以外のものには対応していないため、例えばYoutubeの動画だけど貼ったりするとアイキャッチ画像が作られません。このため、これまでは動画を一旦キャプチャし、それをトップ画像にして記事を書いていました。

しかし、そろそろ面倒になってきたので何か方法はないかと調べたら、解決策がわりとあっさりと見つかったのでご紹介します。

Auto Post Thumbnail PROを使う

まずは正攻法。Auto Post Thumbnailの上位版、Auto Post Thumbnail PROなら動画からのアイキャッチ作成にも対応しています。

WordPress – Auto Post Thumbnail PRO | CodeCanyon

対応している動画サイトはYouTube、Vimeo、Blip.tv、Justin.tv、DailyMotion、MetaCafe。YouTubeとVimeo以外は使うことはないですが、対応しているサイトが多いのに越したことはありません。なおPro版は$5の有料。Wordpressのプラグインサイトからはダンロードできません。

購入前に機能を試してみたいという人のために、自由に使えるWordpressサイトも公開されています。

Auto Post Thumbnailを改造する

もう一つの方法がAuto Post Thumbnailを改造してYouTubeに対応させてしまう方法。この方法は、Auto Post Thumbnailのフォーラムに投稿がありました。

方法は簡単。auto-post-thumbnail.phpの中から以下の記述の部分を見つけます。

// Get all images from post's body
    preg_match_all('/<\s*img [^\>]*src\s*=\s*[\""\']?([^\""\'>]*)/i', $post[0]->post_content, $matches);

中央よりやや後ろ、apt_publish_postというFunctionの中にあります。見つけたら、その後ろに以下の記述を追加するだけです。

if (empty($matches[0])) {
        preg_match('%(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $post[0]->post_content, $match);
        if (!empty($match[1])) {
            $matches=array(); $matches[0]=$matches[1]=array('http://i3.ytimg.com/vi/'.$match[1].'/hqdefault.jpg');
        }
    }

これで、トップにYouTubeの動画を貼っても、そこからアイキャッチを作ってくれます。フォーラムにも書いてありますが、正規表現の部分を変更レスればViemoなどにも対応できそうですね。

そんなわけで私はひとまず後者の改造版を使用することにしました。これで何か機能的に足りないものが出てきたら、PRO版の購入を検討したいと思います。

タイトルとURLをコピーしました