昨年はすっかり参加し損ねた「Movable Type Advent Calendar 2018」 11日目の記事です。
MovableType.netについて書こうかと思っていましたが、内容を大きく変えつつ、間に合わなかったので予告的なエントリーです。
欧米ではちょうど3年くらい前から盛り上がっているポッドキャスト、日本でもようやく話題に出ることが増えてきました。
ポッドキャスト - Wikipedia
個人的にはブランクも挟みつつ、13年と10ヶ月も続けているわけですが、無料のブログサービスなどで始め、一時期はDrupalも使いつつ、最終的には長いことMovable Typeで配信しています。
しかし、これが10年くらい前からなので、いろいろと不具合や不都合が出てきており、ここらで見直していこうと思いながら、いっそのこと Movable Type 7 でポッドキャスト配信ができるテーマを作ろうかと取り掛かっています。
ポッドキャストの仕組みは
そもそもポッドキャストとは、ブログなどで公開した音声ファイルを自動的に収集してiPod(アイポッド)に転送してしまおうと、いちiPodユーザーによって開発されたもの。のちにAppleがiTunesの機能に取り込みます。
仕組みとしては、ブログなどの更新情報を通知するRSSを使います。RSS2.0やATOMの形式では添付ファイルの情報を記載できるので、音声ファイルの情報を載せて配信し、アグリゲーターと呼ばれていたソフトでサイトに訪れなくてもRSSをチェックして、ファイルをダウンロードしてしまうというもの。
この収集役をiTunesやポッドキャストアプリが担っていましたが、Googleもポッドキャストアプリを出し、最近ではSpotifyでもポッドキャストが聴けるようになりました。
配信者としては、ブログの仕組みを使うと簡単で、写真を貼る代わりに、音声や動画などのファイルを記事に貼るだけ。ブログ側でポッドキャスト形式に対応したRSS2.0やATOMを用意しておけば、ブログを更新する感覚で配信できるという手軽なものです。
(音声ファイルを作ったりするのは別として)
RSSを編集したい
SeeSaaブログや最近ではAnchorのような手軽にポッドキャストを始められるサービスもあるので、簡単に始めることはできます。私も使ったりしています。
ポッドキャストを配信するには、もともとRSS2.0やATOMに仕様として用意されているenclosureタグを付与すれば良いのですが、iTunes上に表示される情報などを指定するためのiTunes専用タグがあります。
Googleにも専用タグがあり、追記したい部分も出てきました。また、iTunesには対応している動画やPDFはGoogleやSpotifyは対応していないのですが、Spotifyはフィードに動画があると登録できないため、RSSを分けて2つ作りたいというようなことも出てきました。
ウェブサービスでは、RSSの編集はできないので運営者任せです。対応を待つしかありません。
公開するサイトも含め、自分用にカスタマイズしていきたい、ということになるとよく出てくるのがWordPressにプラグインを入れて配信する方法。「Blubrry PowerPress」とかが有名。
とても細かくオプションがあるのですが、すべて英語なので分かりにくい。また、プラグインなので、自分で少しカスタマイズしたくても変更しにくいのが難点。
ポッドキャストの場合、更新時に音声や動画のファイルが一斉にダウンロードされることがあり、転送量が瞬間的に上がることがあります。ピーク時に画面が真っ白になりやすいということも含めて、個人的には使っていません。(アドバイスのみしている感じです)
Movable TypeではあらかじめRSSファイルを書き出して置いておく仕組みですし、RSS自体もインデックステンプレートで好きに編集して書き出せるので、その点からもMovable Typeから引っ越すメリットは特に考えられません。
更新時には再構築とかで遅いですが、配信後にトラブルがあるよりは気分が楽です。
Movable Typeでのポッドキャスト
Movable Typeでは、かなり前からエムロジックさんがEasyPodcastingプラグインを公開してくれていました。
エムロジック放課後プロジェクト: EasyPodcasting アーカイブ
記事の中にMP3ファイルをアップすると、自動的にRSSファイルにenclosureタグが追加されるというもの。しかも、公開記事には再生用のFlashプレイヤーが表示され、その場で聴くことができるようになります。
細かいオプションなどはないのですが、そもそもRSSファイルをテンプレートで直接編集できるので問題はありません。むしろ、そのほうが便利です。
ただ、動画やPDFなど、iTunesで対応できるファイル形式も増えたのですが、MP3ファイル以外ではenclosureタグが追加されません。
そこで、mt-enclosureプラグインというものでMP3ファイル以外を追加できるようにしていました。
どちらもMT3の頃から使えていた素晴らしいプラグインですが、あれからMTも機能が増え、プラグインがなくてもできることは多くなっています。
記事に音声や動画があったらenclosureタグを追加、などは簡単にできそうです。
実際、Flashプレイヤーも使わないだろうとaudioタグに置き換えたり、AppleがMP3ファイルよりもAACファイルを強く推奨すると明記しているのでAACファイルでも配信できるようにしたりとカスタマイズしていて、プラグイン頼りの部分はほとんどない状態です。
なお、mt-enclosureプラグインはすでにサイト自体がなくなっていました。
ポッドキャストの仕様も、シーズン番号やエピソード番号、古い順に配信する記述など増えています。
このあたり、MT7のコンテンツタイプなんかでできそうだなと思って編集予定です。ただ、過去のものを移行するとなると気が遠くなるので、一新して作り直し、再スタートのような形にしようと考えています。
どうせなら公開してもいいんじゃないか
自分のサイトを修正する前に、MTのポッドキャスト用テーマを作って配布しても良いんじゃないか、という以前に考えていたことを思い出しました。
MT7のコンテンツタイプを使っていっても良さそうです。
今回公開できればよかったのですが、間に合わなかったので途中段階を紹介します。
ベースとなるデザインはクリエイティブ・コモンズ・ライセンスでクレジットの表示だけが義務付けられた、こちらを使ってみます。
Podca - Free Podcast Website Template 2018 - Colorlib
クリエイティブ・コモンズのライセンス文と食い違いがありそうですが、無料版ではCMSのテンプレートに変換できなさそうなので購入してみます。21ドルです。
無料版では再配布や貸与もダメということが記述されていますが、有料版は、他のマーケットプレイスやテーマ/テンプレートストアで再販する以外は何をしても良いとあるので、配布できるのではないかと思います。
なお、今はMT6では記事にカスタムフィールドを追加して情報を追記しています。(カスタムフィールドなしで作ってるのも多いです)
上記の情報をRSS2.0のテンプレートで参照する感じです(ちょっと古いです)。
<mt:setVarBlock name="author"><mt:Authors lastn="1" sort_order="ascend"><$MTAuthorDisplayName$></mt:Authors></mt:setVarBlock>
<mt:setVarBlock name="siteimageURL"><MTAssets lastn="1" tag="artwork"><$MTAssetURL$></MTAssets></mt:setVarBlock>
<$MTHTTPContentType type="application/rss+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>
<language><$MTBlogLanguage ietf="1"$></language>
<copyright><mt:Var name="author"> <$MTDate format="%Y"$></copyright>
<lastBuildDate><MTEntries blog_ids="children" lastn="1"><$MTEntryDate format_name="rfc822"$></MTEntries></lastBuildDate>
<atom:link href="http://whizzo.jp/index.xml" rel="self" type="application/rss+xml" />
<itunes:subtitle>Podcast of <$MTBlogName remove_html="1" encode_xml="1"$></itunes:subtitle>
<itunes:author><mt:Var name="author"></itunes:author>
<itunes:summary><$MTBlogDescription remove_html="1" encode_xml="1"$></itunes:summary>
<itunes:owner>
<itunes:name><mt:Var name="author"></itunes:name>
<itunes:email><mt:Authors lastn="1" sort_order="ascend"><$MTAuthorEmail$></mt:Authors></itunes:email>
</itunes:owner>
<itunes:type>serial</itunes:type>
<MTAssets lastn="1" tag="artwork">
<image>
<url><$MTAssetThumbnailURL width="144" height="144"$></url>
<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<width>144</width>
<height>144</height>
</image>
<itunes:image href="<mt:Var name="siteimageURL">" />
</MTAssets>
<itunes:category text="Business">
<itunes:category text="Business News"/>
</itunes:category>
<itunes:category text="Technology">
<itunes:category text="Podcasting" />
</itunes:category>
<itunes:category text="Technology">
<itunes:category text="Gadgets"/>
</itunes:category>
<itunes:explicit>No</itunes:explicit>
<itunes:keywords> Web制作, ウェブ制作</itunes:keywords>
<MTEntries blog_ids="children" lastn="300">
<item>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<description><$MTEntryExcerpt encode_xml="1"$></description>
<itunes:title><$MTEntryTitle remove_html="1" encode_xml="1"$></itunes:title>
<itunes:author><mt:Var name="author"></itunes:author>
<itunes:subtitle></itunes:subtitle>
<itunes:episodeType><mt:episodeType></itunes:episodeType>
<itunes:summary><$MTEntryExcerpt encode_xml="1"$></itunes:summary>
<content:encoded><$MTEntryBody sanitize="p,ol,ul,li,a,em,i,b" dirify="1"$></content:encoded>
<link><$MTEntryPermalink encode_xml="1"$></link>
<guid><$MTEntryPermalink encode_xml="1"$></guid>
<pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
<mt:SetVarBlock name="ogimg"><mt:EntryAssets type="image" limit="1"><mt:AssetURL></mt:EntryAssets></mt:SetVarBlock>
<mt:If name="ogimg">
<itunes:image href="$ogimg" />
<mt:Else>
<itunes:image href="<mt:Var name="siteimageURL">" />
</mt:If>
<$MTEntryEnclosures mime_include="application"$>
<$MTEntryEnclosures mime_include="audio/mpeg"$>
<$MTEntryEnclosures mime_include="video"$>
</item>
</MTEntries>
</channel>
</rss>
随所にMTタグやiTunesタグがあってわかりにくいですね。ま、こんな感じということで。
すでにRSS部分ではEasyPodcastingプラグインは使ってなく、下記の部分がmt-enclosureプラグインの記述です。
<$MTEntryEnclosures mime_include="application"$>
<$MTEntryEnclosures mime_include="audio/mpeg"$>
<$MTEntryEnclosures mime_include="video"$>
このRSSの記述を、Appleのサイトにある RSSタグの説明、RSSフィードのサンプルやGoogleのポッドキャストのガイドラインに沿って編集していきます。
単純な話、コンテンツタイプやカスタムフィールドで作っていけば、情報に合わせて置き換えていけば良いだけの話ですね。
RSSには、サイト全体の情報としての<channel>
の情報と、個別のエピソードの<item>
の情報があります。それぞれ、コンテンツタイプで入力できるようにしてみます。
<channel>
の情報は「番組情報」として作成。
そして、<item>
の情報は「エピソード」として作成。
タグで使う情報の他に、トップページに表示するサムネイルや個別ページのヒーロー画像(上部の大きな画像)なども入力できるように。
「番組情報」は初回のみ設定し、ポッドキャストの更新を「エピソード」から行う感じです。
他に、テンプレートにはポッドキャスターを紹介するAboutページがあったり、トップページにゲストを紹介するブロックがありましたので、「ポッドキャスター」や「ゲスト」といったコンテンツタイプを作っても良いのかなと。
各エピソードごとに、「ポッドキャスター」や「ゲスト」を選択できるようにし、絞り込んで一覧を表示できるようにしても便利そうです。(私の番組は基本、一人で喋ってるので需要はないですが)
コンテンツタイプのリッチテキストやブロックエディタはやや貧弱なので「記事」を使うことも考えましたが、コンテンツタイプを呼び出せないので、すべてコンテンツタイプにしています。
問題は「記事」を書いたときにどこかに反映させるようにするべきか。
また、テンプレートには問い合わせフォームとかもあるけど、プラグインを入れないとすると用意ができないですね。フッターあたりは、ごっそりと削ろうかな。動画やPDFが添付されたときの表示もなさそうなので、どうしようかなと。あとは、MT7でテーマのインポートとか、試していないので、どうかなというところです。
CMSでポッドキャストの配信となるとWordPressの情報ばかりが出てきますが、Movable Typeという選択肢も提示したいところ。企業利用ではMTのライセンス費が要りますが、個人利用の場合は個人無償版が使えます。
Movable Typeを使って、趣味のポッドキャストを始めてみてはどうでしょうか?
反響次第では急いでテーマを作ります!