如何以编程方式重命名iTunes资料库中的电影和电视节目文件,以实现XBMC兼容性?

时间:2008-12-29 13:35:28

标签: ruby applescript itunes xbmc

我在iTunes中收集了一些电影和电视节目,我想将它们重命名为XBMC compatible naming convention,而不会破坏iTunes中的链接。

所有必要的元数据(季节编号,节目名称,剧集编号等)似乎都在iTunes管理的XML文件中,而剧集名称是当前文件名。因此,以编程方式重命名文件似乎相当简单,但如何同时保持iTunes库直接?是否足以重写XML文件以指向新文件名?

如果我可以避免它(生命太短暂),我宁愿不进入AppleScript,但是如果这样做更容易,我可以看一下。否则,我最好在红宝石中这样做。

6 个答案:

答案 0 :(得分:2)

不确定你是否在Windows机器上,但老实说如果你能写一点Javascript,iTunes COM API非常容易使用。

以下是它的样子。 (这是未经过测试的,所以只能用它作为参考。)

var    ITTrackKindFile  = 1;
var iTunesApp = WScript.CreateObject("iTunes.Application");
var deletedTracks = 0;
var mainLibrary = iTunesApp.LibraryPlaylist;
var tracks = mainLibrary.Tracks;
var numTracks = tracks.Count;
var i;
var    RenameTarget;

while (i > 0)
{
    var currTrack = tracks.Item(numTracks);

    // is this a file track?
    if (currTrack.Kind == ITTrackKindFile)
    {
            RenameTarget = "Stuff from other properties"
        currTrack.Name = RenameTarget; //
    }
    numTracks++;
}

祝你好运。

答案 1 :(得分:2)

在Windows上Apple提供了运行良好的iTunes COM for Windows SDK。它是使用COM接口创建的,因此几乎适用于Windows的所有语言。它提供了重命名曲目和播放列表的方法。我用它来用我的图书馆做各种各样的事情。

我不知道MAC上可用的内容,但我相信AppleScript是访问可用内容的最佳本机方式。有一个名为"EyeTunes"的项目提供了一个Cocoa框架。有一个致力于Applescript("Doug's AppleScripts for iTunes")的网站。这是一个展示如何access iTunes from perl的网站。

如果要重命名文件和iTunes名称,则最好更改曲目名称,从库中删除文件,重命名文件,然后重新添加曲目。您需要保留上次播放,播放次数等信息。

答案 2 :(得分:2)

迟到但我对OS X上的Plex要求完全相同。

我的解决方案是编写一个Python脚本,通过AppleScript桥查询iTunes的电视节目,从每个轨道的位置属性获取文件路径,然后创建一个符号链接到原始文件,使用iTunes元数据为链接提供链接名称适用于Plex / XBMC等。

优点是您可以轻松地创建具有不同命名方案的多组链接,例如: 我的名字是Earl S01E10.m4v 我的名字是Earl 01x10 White Lie Christmas.m4v

脚本的核心是(其中track是appscript桥提供的引用):

def trackInfo(track):
"""returns tuple (filename, filepath, show)

track is iTunes playlist track from appscript bridge,

filename is of format "Showname 01x02 Episode Name.avi" where 
01 is the season number, 02 the episode number and the extension
will match that of filepath.

filepath is the UNIX path to the original file.
"""
try:
    path = track.location().path
except CommandError:
    return None, None, None
ext = os.path.splitext(path)[1]
name = "%s %02dx%02d %s%s" % (track.show(), track.season_number(), 
                                track.episode_number(), track.name(), ext)
return name, path, track.show()

答案 3 :(得分:1)

我使用identify2 for mac重命名我的节目 - 效果很好!

答案 4 :(得分:0)

http://www.epnamer.com/查看EpNamer。它需要.NET,但正是你正在寻找的东西,而XBMC也正是我用它。

您可能也会考虑使用Media Companion,因为您最有可能使用XBMC的库功能,您可以在这里阅读:

http://xbmc.org/forum/showthread.php?p=217769

它会为每个电影和电视节目制作.nfo和.tbn文件,你有哪些XBMC会在上网之前获取信息。

享受!

答案 5 :(得分:0)

使用iTunes xml文件的另一种方法是使用plist模块。