Cómo cambiar el nombre de programación archivos de películas y programas de televisión en una biblioteca de iTunes, para la compatibilidad XBMC?

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

  •  29-08-2019
  •  | 
  •  

Pregunta

Tengo una colección de películas y programas de televisión en iTunes, y me gustaría cambiar su nombre a un XBMC convención de nombres compatibles sin romper los enlaces en iTunes.

Todos los metadatos necesarios (número de estación, nombre del programa, el número de episodio, etc) parece estar en un archivo XML que gestiona iTunes, y el nombre del episodio es el nombre del archivo actual. Así mediante programación cambiar el nombre de los archivos parece bastante sencillo, pero ¿cómo mantener la biblioteca de iTunes directamente al mismo tiempo? ¿Es suficiente para volver a escribir el archivo XML para apuntar a los nuevos nombres de archivo?

Yo prefiero no entrar en applescript si puedo evitarlo (la vida es demasiado corta), sin embargo, si es más fácil hacerlo de esa manera puedo mirarlo. De lo contrario estaría idealmente gusta hacer esto en rubí.

¿Fue útil?

Solución

En Windows Apple proporciona el iTunes COM para Windows SDK que funciona bastante bien. Se ha creado usando una interfaz COM por lo que funciona con casi todos los idiomas disponibles para Windows. Se proporciona métodos para cambiar el nombre de las canciones y listas de reproducción. He utilizado esto para hacer todo tipo de cosas con mi biblioteca.

No sé lo que está disponible en un Mac, pero creo AppleScript es la mejor manera nativa para acceder a los servicios disponibles. Hay un proyecto llamado "EyeTunes" que proporciona un marco de cacao. No es un sitio dedicado a Applescript ( "AppleScripts de Doug para iTunes" ). Aquí está un sitio que muestra cómo de Perl .

Si desea cambiar el nombre tanto el archivo y el nombre de iTunes entonces es probablemente mejor cambiar el nombre de la pista, eliminar el archivo de la biblioteca, cambiar el nombre del archivo, y luego volver a añadir la pista. Lo que se necesita para conservar la información como la última jugada, playcount, etc.

Otros consejos

No está seguro de si se encuentra en una caja de Windows pero honestamente si se puede escribir incluso un poco de Javascript el iTunes COM API es muy fácil de usar.

A continuación se muestra un ejemplo de lo que se verá así. (Esto no se ha probado, por lo que sólo utilizarlo como referencia.)

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

Buena suerte.

tardío pero necesitaba exactamente el mismo para Plex en OS X.

Mi solución fue escribir un script en Python que consulta iTunes para su programas de televisión a través del puente de AppleScript, obtiene la ruta del archivo de atributo de ubicación de cada pista y luego crea un enlace simbólico al archivo original, a través de iTunes metadatos para dar el enlace de una nombre adecuado para Plex / XBMC etc.

La ventaja es que se puede crear sin dolor múltiples conjuntos de enlaces con diferentes esquemas de nombramiento, por ejemplo, Me llamo Earl S01E10.m4v o Me llamo Earl 01x10 White Lie Christmas.m4v

El núcleo de la secuencia de comandos es (donde track es la referencia proporcionada por el puente 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()

Yo uso identify2 para Mac para cambiar el nombre de mis espectáculos - funciona muy bien

!

Salida EpNamer en http://www.epnamer.com/ . Se requiere .NET, pero es exactamente lo que estás buscando y XBMC es exactamente lo que lo uso para también.

También puede mirar en el uso Media Companion ya que estás más probable es que el uso de la funcionalidad de la biblioteca de XBMC, que se puede leer aquí:

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

Se va a hacer Nfo y archivos .tbn para cada película y programa de televisión que tienes lo que se XBMC raspar antes de salir a la Internet para obtener información.

Disfrute!

Otra manera de jugar con el archivo XML de iTunes es utilizar la plist módulo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top