我对播客很感兴趣。我唯一担心的是如何创建一个 xml 文件来提供有关音频文件的所有信息。
答案1
如果您尝试制作一个与 iTunes 格式兼容的 RSS XML,您需要的是一种 RSS XML。Apple 的网站提供了您可能需要的很好的描述:看这里。
这里我给你一个模板。XML 文件的开头是这样的:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<atom:link href="http://PATH-TO-RSS/XML/FILE" rel="self" type="application/rss+xml" />
<title>PODCAST TITLE</title>
<link>http://PATH-TO-WEBPAGE</link>
<description>DESCRIPTION OF PODCAST (SHORT)</description>
<lastBuildDate>Mon, 27 Dec 2010 17:16:55 GMT</lastBuildDate>
<language>en-us</language>
<copyright>Copyright 2010 © WHOEVER</copyright>
<itunes:subtitle>PODCAST SUBTITLE</itunes:subtitle>
<itunes:author>PODCAST AUTHOR</itunes:author>
<itunes:summary>PODCAST SUMMARY (LONGER)</itunes:summary>
<itunes:owner>
<itunes:name>PODCAST MAINTAINER</itunes:name>
<itunes:email>[email protected]</itunes:email>
</itunes:owner>
<itunes:image href="http://PODCAST-IMAGE-URL/something.jpg" />
<itunes:category text="Category1" />
<itunes:category text="Category2">
<itunes:category text="Subcategory" />
</itunes:category>
接下来是任意数量的项目,如下所示:
<item>
<title>ITEM TITLE</title>
<link>http://link.for.this.item</link>
<itunes:author>Item Author</itunes:author>
<description>Item description</description>
<itunes:summary>Item summary</itunes:summary>
<enclosure url="http://link-to.media.file.mp3" length="filesize-in-bites" type="audio/mpeg"/>
<guid>http://link-to-media/file.mp3</guid>
<pubDate>Current Date (same format as above)</pubDate>
<itunes:duration>4:21</itunes:duration>
<itunes:keywords>Keywords</itunes:keywords>
<category>Podcasts</category>
<itunes:explicit>no</itunes:explicit>
</item>
文件在所有项目之后结束,如下所示:
<itunes:explicit>no</itunes:explicit>
</channel>
</rss>
也许您想知道如何从文件本身提取所需的信息。假设其 id3v2 元数据标签状况良好,您也可以使用 id3v2 命令行来获取其中的一些信息,例如,我使用:
songtitle="$(id3v2 --list "$file" | grep "TIT2" | sed 's%TIT2.*:\s*%%')"
获取曲目的标题。(其中 $file 设置为文件名)。
为了获取文件大小,我使用:
filesize=$(stat -c %s "$file")
为了获得持续时间,我使用:
fileduration=$(exiftool -S -Duration "$file" | sed 's/Duration: //' | sed 's/ (approx)//')
要以适合日期字段的格式获取当前日期:
currdate=$(date -u -R | sed 's/\+0000/GMT/')