◀   |   |   ▶
◀   |   |   ▶

iBlog v1.4.6 Build #1 の FeedPage.txt を改造する



iBlog v1.4.6 Build #1 では、はやりの Podcasting への対応が図られていますが、未実装の機能も多く、生成される RSS フィードが invalid なものになっています。

OKAMURA さんのエントリによると、iBlog v1.4.6 Build #1 の生成したフィードは Sage で読み込めないという問題があるそうです。(『iBlog 1.4.6 build#1 の RSS は Sage で読み取れない?』)

そこで、RSS フィードのことはよくわからないまま、暇にあかせて試行錯誤の上、 FeedPage.txt を作り直してみました。

<追記><itunes_:foo> というタグを書くと、iBlog によって <_a href=itunes_:foo> タグに置き換えられてしまう… エントリへのコード書きってむずかしいなぁ。iBlogTagAssist に感謝。</追記>

<さらに追記>『<enclosure> 要素がない』と本文中に書きましたが、<_$EntryEnclosure$> という記述を見逃してました。</さらに追記>


参考にしたのは『How To Publish a Podcast on the iTunes Music Store』、英文の記事ですが、わかりやすくまとまっています。また、作成したフィードは、Feed Validator for Atom and RSS で検証しながら作業しました。

以下、素人目にも気がついた iBlog の RSS の問題点。

『未定義の <itunes_:link> タグが使用されている』
具体的には、
<itunes_:link rel="image" type="image/png" href="[_$DocumentRoot$]/podcastImage.png"><_$BlogName$></itunes_:link>
という行があるのですが、これがいちばんの問題点のような気がします。私の場合は、この行を当初、
<itunes_:link><[_$DocumentRoot$]/index.html</itunes_:link>
と書き換えただけで、Sage でも Safari RSS でも正常に読み込めるようになりました。

『<enclosure> 要素がない』
かんじんの音声ファイルを格納する要素がありません。iTunes と連動させると生成されるのかな... それとも、エントリ本文に入れる仕様なんでしょうか? わかりません。
<追記><_$EntryEnclosure$> という記述を見逃してました。Podcasting した場合にはこれが <enclosure> 要素に置き換わるものと思われます。</追記>

『<itunes_:duration> が空タグになってしまう』
音声ファイルの再生時間を HH:MM:SS の形式で記載します。これが、空タグになってしまいます。

『<itunes_:keywords> に2バイト文字が使われる』
この中身に <_$ItemKeywords$> が使われていますが、ここには実際にはエントリのタイトルが入るだけです。<itunes_:keywords> には2バイト系の文字は使えませんので、ダメです。将来は、エントリ編集ウインドウで設定することができるようになるのかもしれません。

ほかにもいろいろといじった結果、私の FeedPage.txt は以下のようになりました。ベースがベースだけに、ちょっと Podcasting 寄りになりすぎたフィードかもしれません。

<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="iBlog <_$iBlogVersion$>" -->
<!-- must include xmlns:itunes tag -->
<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd" version="2.0">
<channel>
  <title><_$BlogName$></title>
  <itunes_:author><_$AuthorName$></itunes_:author>
  <link>[_$DocumentRoot$]/index.html</link>
  <description><![CDATA[<_$BlogDescription$>]]></description>
  <itunes_:subtitle><_$ChannelSubtitle$></itunes_:subtitle>
  <itunes_:summary><_$ChannelSummary$></itunes_:summary>
  <language><_$Language$></language>
  <managingEditor><_$AuthorEmail$></managingEditor>
  <_$WebMaster$>
  <_$Copyright$>
  <lastBuildDate><_$DateBuild$></lastBuildDate>
  <pubDate>[_$DatePublished$]</pubDate>
  <generator>iBlog <_$iBlogVersion$></generator>
  <itunes_:owner>
    <itunes_:name><_$AuthorName$></itunes_:name>
    <itunes_:email><_$AuthorEmail$></itunes_:email>
  </itunes_:owner>
  
  <!-- iTunes prefers square images 300x300 pixels or larger -->
  <itunes_:image href="[_$DocumentRoot$]/podcastImage.png" />
  
  <!-- iTunes Browse Podcasts Category -->
  <category><_$ChannelCategory$></category>
    <!-- iTunes Browse Podcasts Subcategory -->
    <_$ChannelSubCategory$>
  
  <ForEachEntry>
    <item>
      <title><![CDATA[<_$EntryTitle$>]]></title>
      <link>[_$DocumentRoot$]/<_$EntryLink$></link>
      <author><_$AuthorEmail$></author>
      <description><![CDATA[<_$EntryAbstractOrBody$>]]></description>
      <guid>[_$DocumentRoot$]/<_$EntryLink$></guid>
      <_$EntryEnclosure$>
      <itunes_:author><_$AuthorName$></itunes_:author>
      <itunes_:subtitle><_$ItemTitle$></itunes_:subtitle>
      <itunes_:summary><_$ItemSummary$></itunes_:summary>
      <pubDate><_$EntryPostDate$></pubDate>
      <category><_$ItemCategory$></category>
      <_$ItemSubCategory$>
      <itunes_:explicit><_$ItemExplicit$></itunes_:explicit>
      <itunes_:duration>1:00</itunes_:duration>
      <itunes_:keywords><_$BlogName$> Macintosh AppleScript iBlog</itunes_:keywords>
    </item>
  </ForEachEntry>
  
</channel>
</rss>

とりあえず、Sage でも Safari RSS でも正常に読み込まれているようですし、Feed Validator でも Congratulations ! と言われたのですが、Podcasting してないので、かんじんのその部分は不明。はは。

投稿: 2005年07月23日 (土) at 00:12   | | | |

◀   |   |   ▶
◀   |   |   ▶