Come rinominare a livello di codice i file di film e programmi TV in una libreria iTunes, per la compatibilità XBMC?

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

  •  29-08-2019
  •  | 
  •  

Domanda

Ho una raccolta di film e programmi TV in iTunes e vorrei rinominarli in an Convenzione di denominazione compatibile con XBMC senza interrompere i collegamenti in iTunes.

Tutti i metadati necessari (numero della stagione, nome dello spettacolo, numero dell'episodio, ecc.) sembrano essere in un file XML gestito da iTunes e il nome dell'episodio è il nome del file corrente.Quindi rinominare i file a livello di codice sembra abbastanza semplice, ma come posso mantenere allo stesso tempo la libreria iTunes?È sufficiente riscrivere il file XML in modo che punti ai nuovi nomi di file?

Preferirei non entrare in AppleScript se posso evitarlo (la vita è troppo breve), tuttavia se è più facile farlo in questo modo potrei guardarlo.Altrimenti mi piacerebbe idealmente farlo in Ruby.

È stato utile?

Soluzione

Su Windows Apple fornisce il ITunes COM per Windows SDK funziona abbastanza beneViene creato utilizzando un'interfaccia COM quindi funziona con quasi tutte le lingue disponibili per Windows.Fornisce metodi per rinominare tracce e playlist.L'ho usato per fare ogni genere di cose con la mia libreria.

Non so cosa sia disponibile su un MAC, ma credo che AppleScript sia il miglior modo nativo per accedere a ciò che è disponibile.C'è un progetto chiamato "EyeTunes" che fornisce un framework Cocoa.C'è un sito dedicato ad Applescript ("AppleScript di Doug per iTunes").Ecco un sito che mostra come farlo accedi a iTunes da Perl.

Se desideri rinominare sia il file che il nome iTunes, probabilmente è meglio cambiare il nome della traccia, rimuovere il file dalla libreria, rinominare il file e quindi aggiungere nuovamente la traccia.Dovresti preservare informazioni come l'ultima riproduzione, il conteggio delle partite, ecc.

Altri suggerimenti

Non sono sicuro che tu abbia un computer Windows, ma onestamente se puoi scrivere anche un po' di Javascript il file API COM di iTunes è molto facile da usare.

Di seguito è riportato un esempio di come apparirà.(questo NON è testato, quindi usalo solo come riferimento.)

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

Buona fortuna.

In ritardo ma avevo bisogno esattamente dello stesso per Plex su OS X.

La mia soluzione era scrivere uno script Python che interroga iTunes per i suoi programmi TV tramite il bridge AppleScript, ottiene il percorso del file dall'attributo location di ciascuna traccia e quindi crea un collegamento simbolico al file originale, utilizzando i metadati di iTunes per dare al collegamento un nome adatto a Plex/XBMC ecc.

Il vantaggio è che puoi creare senza problemi più set di collegamenti con diversi schemi di denominazione, ad es. Il mio nome è Earl S01E10.m4v O Il mio nome è Earl 01x10 White Lie Christmas.m4v

Il nucleo dello script è (where track è il riferimento fornito dal bridge 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()

Utilizzo identifica2 per Mac per rinominare i miei spettacoli: funziona alla grande!

Dai un'occhiata a EpNamer su http://www.epnamer.com/.Richiede .NET ma è esattamente quello che stai cercando e XBMC è esattamente ciò per cui lo uso anch'io.

Potresti anche prendere in considerazione l'utilizzo di Media Companion poiché molto probabilmente stai utilizzando la funzionalità di libreria di XBMC, di cui puoi leggere qui:

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

Creerà file .nfo e .tbn per ogni film e programma TV che hai, che XBMC scaricherà prima di andare su Internet per informazioni.

Godere!

Un altro modo per giocare con il file xml di iTunes è utilizzare il file plist modulo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top