XBMC 호환성을 위해 iTunes 라이브러리에서 영화 및 TV 쇼 파일 이름을 프로그래밍 방식으로 바꾸는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/397723

  •  29-08-2019
  •  | 
  •  

문제

iTunes에 영화와 TV 쇼 모음이 있고 이름을 바꾸고 싶습니다. XBMC 호환 이름 지정 컨벤션 iTunes에서 링크를 깨지 않고.

필요한 모든 메타 데이터 (시즌 번호, 쇼 이름, 에피소드 번호 등)는 iTunes가 관리하는 XML 파일에있는 것으로 보이며 에피소드 이름은 현재 파일 이름입니다. 따라서 프로그래밍 방식으로 파일의 이름을 바꾸는 것은 상당히 간단 해 보이지만 동시에 iTunes 라이브러리를 똑바로 유지하려면 어떻게해야합니까? 새 파일 이름을 가리 키도록 XML 파일을 다시 작성하는 것으로 충분합니까?

내가 그것을 피할 수 있다면 (인생이 너무 짧다) 사과 스크립트에 들어 가지 않겠다. 그렇지 않으면 나는 이상적으로 루비에서 이것을하고 싶습니다.

도움이 되었습니까?

해결책

Windows에서 Apple이 제공합니다 Windows SDK 용 iTunes com 그것은 아주 잘 작동합니다. COM 인터페이스를 사용하여 작성되므로 Windows에 사용할 수있는 거의 모든 언어에서 작동합니다. 트랙과 재생 목록을 바꾸는 방법을 제공합니다. 나는 이것을 내 도서관과 함께 모든 종류의 일을하기 위해 사용했습니다.

나는 Mac에서 무엇을 사용할 수 있는지 모르겠지만 AppleScript가 사용 가능한 것에 액세스하는 가장 좋은 기본 방법이라고 생각합니다. 부르는 프로젝트가 있습니다 "eyetunes" 코코아 프레임 워크를 제공합니다. 사과 스크립트에 전념하는 사이트가 있습니다 ("iTunes에 대한 Doug의 사과"). 다음은 방법을 보여주는 사이트입니다 Perl에서 iTunes에 액세스하십시오.

파일과 iTunes 이름의 이름을 바꾸려면 트랙 이름을 변경하고 라이브러리에서 파일을 제거하고 파일 이름을 바꾸고 트랙을 다시 추가하는 것이 좋습니다. 마지막으로 재생, PlayCount 등과 같은 정보를 보존해야합니다.

다른 팁

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

행운을 빕니다.

늦었지만 OS X의 Plex에 대해서는 정확히 동일해야했습니다.

내 솔루션은 AppleScript Bridge를 통해 TV 쇼의 iTunes를 쿼리하고 각 트랙의 위치 속성에서 파일 경로를 가져온 다음 원본 파일에 Symlink를 작성하여 iTunes Metadata를 사용하여 링크에 적합한 이름을 제공하는 Python 스크립트를 작성하는 것이 었습니다. PLEX/XBMC 등

장점은 다른 명명 체계와 함께 여러 링크 세트를 통증없이 만들 수 있다는 것입니다. 제 이름은 Earl S01E10.M4V입니다 또는 제 이름은 Earl 01x10 White Lie Christmas.M4V입니다

스크립트의 핵심은 (여기서 track AppScript Bridge에서 제공하는 참조) :

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()

나는 Mac에 식별 2를 사용하여 쇼 이름을 바꿉니다.

Epnamer를 확인하십시오 http://www.epnamer.com/. .NET가 필요하지만 정확히 당신이 찾고있는 것이며 XBMC는 내가 사용하는 것입니다.

XBMC의 라이브러리 기능을 사용할 가능성이 높기 때문에 미디어 컴패니언을 사용하는 것도 다음을 읽을 수 있습니다.

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

정보를 얻기 위해 인터넷에 나가기 전에 어떤 XBMC가 긁을 것인지가있는 각 영화와 TV 쇼에 대해 .nfo 및 .tbn 파일을 만들게됩니다.

즐기다!

iTunes XML 파일로 재생하는 또 다른 방법은 PLIST 기준 치수.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top