1

我在 iTunes 中有一系列电影和电视节目,我想将它们重命名为与XBMC 兼容的命名约定,而不会破坏 iTunes 中的链接。

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

如果我可以避免它(生命太短),我宁愿不进入applescript,但是如果这样做更容易,我可能会看它。否则,我理想情况下希望在 ruby​​ 中执行此操作。

4

6 回答 6

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++;
}

祝你好运。

于 2008-12-29T13:57:12.417 回答
2

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

我不知道 MAC 上有什么可用的,但我相信 AppleScript 是访问可用内容的最佳本地方式。有一个名为“EyeTunes”的项目提供了一个 Cocoa 框架。有一个专门介绍 Applescript 的网站(“Doug's AppleScripts for iTunes”)。这是一个展示如何从 perl 访问 iTunes的站点。

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

于 2008-12-29T13:58:26.113 回答
2

晚了,但我在 OS X 上需要完全相同的 Plex。

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

优点是您可以使用不同的命名方案轻松创建多组链接,例如My Name Is Earl S01E10.m4vMy Name Is Earl 01x10 White Lie Christmas.m4v

脚本的核心是(trackappscript桥提供的参考在哪里):

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()
于 2009-07-24T20:31:27.020 回答
1

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

于 2011-04-05T22:33:37.717 回答
0

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

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

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

它会为每个电影和电视节目制作 .nfo 和 .tbn 文件,您已经获得了 XBMC 将在上网获取信息之前抓取的文件。

享受!

于 2009-02-08T22:55:06.673 回答
0

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

于 2009-02-08T23:24:22.670 回答