J'ai une collection de films et d'émissions de télévision dans iTunes, et je voudrais les renommer en XBMC compatible naming convention sans casser les liens dans iTunes. Toutes les métadonnées nécessaires (numéro de saison, nom de l'émission, numéro de l'épisode, etc.) semblent être dans un fichier XML géré par iTunes, et le nom de l'épisode est le nom du fichier actuel. Donc renommer les fichiers par programme semble assez simple, mais comment conserver la bibliothèque iTunes directement en même temps? Est-il suffisant de réécrire le fichier XML pour pointer vers les nouveaux noms de fichiers? Je préférerais ne pas entrer dans l'applescript si je peux l'éviter (la vie est trop courte), mais s'il est plus facile de le faire de cette façon, je peux le regarder. Sinon, j'aimerais idéalement faire ça en rubis.Comment renommer par programme les fichiers de films et d'émissions télévisées dans une bibliothèque iTunes, pour une compatibilité XBMC?
Répondre
Sous Windows Apple fournit le iTunes COM for Windows SDK qui fonctionne plutôt bien. Il est créé à l'aide d'une interface COM de sorte qu'il fonctionne avec presque toutes les langues disponibles pour Windows. Il fournit des méthodes pour renommer les pistes et les listes de lecture. J'ai utilisé ceci pour faire toutes sortes de choses avec ma bibliothèque.
Je ne sais pas ce qui est disponible sur un MAC, mais je crois que AppleScript est le meilleur moyen d'accéder à ce qui est disponible. Il existe un projet appelé "EyeTunes" qui fournit un framework Cocoa. Il y a un site consacré à Applescript ("Doug's AppleScripts for iTunes"). Voici un site montrant comment access iTunes from perl.
Si vous souhaitez renommer le fichier et le nom iTunes, il est probablement préférable de changer le nom de la piste, de supprimer le fichier de la bibliothèque, de renommer le fichier, puis d'ajouter à nouveau la piste. Vous devez conserver des informations telles que la dernière lecture, le compte de jeu, etc.
Vous ne savez pas si vous êtes sur un boîtier Windows mais honnêtement, si vous pouvez écrire même un peu de Javascript, le iTunes COM API est très facile à utiliser.
Voici un exemple de ce à quoi cela va ressembler. (Ceci n'est PAS testé, donc utilisez-le comme référence.)
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++;
}
Bonne chance.
merci - ma bibliothèque est sur un mac si donc je ne peux pas utiliser cette méthode – frankodwyer
Consultez EpNamer au http://www.epnamer.com/. Il nécessite .NET mais est exactement ce que vous cherchez et XBMC est exactement ce que je l'utilise aussi.
Vous pouvez également regarder dans Companion des médias puisque vous êtes le plus susceptible d'utiliser la fonctionnalité de bibliothèque de XBMC, que vous pouvez lire ici:
http://xbmc.org/forum/showthread.php?p=217769
Il va faire .nfo et .tbn fichiers pour chaque film et émission de télévision que vous avez XBMC va racler avant de sortir sur Internet pour plus d'informations.
Profitez-en!
Une autre façon de jouer avec le fichier iTunes xml est d'utiliser le module plist.
fin mais je avais besoin exactement la même chose pour Plex sur OS X.
Ma solution a été d'écrire un script Python qui interroge iTunes pour sa TV montre via le pont AppleScript, obtient le chemin du fichier de l'attribut de l'emplacement de chaque piste puis crée un lien symbolique vers le fichier d'origine, en utilisant les métadonnées iTunes pour donner au lien un nom approprié pour Plex/XBMC, etc.
L'avantage est que vous pouvez créer sans difficulté plusieurs ensembles de liens avec différents schémas de dénomination, par ex. My Name Is Earl S01E10.m4v ou My Name Is Earl 01x10 White Lie Christmas.m4v
Le noyau du script est (où track
est la référence fournie par le pont 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()
belle solution - l'idée symlink est grande. Je pourrais voir en utilisant cela pour créer une structure de répertoires séparée aux côtés d'iTunes pour les autres lecteurs multimédias, sans avoir à tout dupliquer. Bien qu'inunes ait l'habitude de renommer les fichiers, il peut être plus sûr de conserver l'original ailleurs et d'avoir un lien symbolique vers le fichier itunes - pas sûr que iTunes gère les liens symboliques comme ça. – frankodwyer
Tant que vous utilisez des liens symboliques appropriés et non des alias OS X, la plupart des applications n'ont aucun problème avec les liens. Cela dit, je pense qu'il est beaucoup plus sûr de nourrir les liens symboliques vers le programme qui ne lit que les fichiers. Moins peut aller mal. iTunes renommer les fichiers n'est pas un problème. Je cours juste le script régulièrement en arrière-plan (ou au besoin). Il élague d'abord les liens morts, puis reconstruit l'arborescence des liens. iTunes fournit quand même le chemin du fichier, donc s'il a renommé quelque chose, il dira le script. – wbg
J'utilise identify2 pour mac pour renommer mes shows - ça marche super!
- 1. Renommer une série de fichiers
- 2. Comment empêcher l'apparition de "l'Assistant de compatibilité de programme" dans Vista (et Windows 7) par programme?
- 3. Renommer par programme les tables dans les requêtes Access
- 4. Comment renommer/déplacer tous les fichiers avec une certaine extension?
- 5. Comment faire une boucle dans les fichiers et les renommer en utilisant PowerShell?
- 6. Renommer des fichiers dans MATLAB
- 7. SQL Server 2005 et la bibliothèque iTunes
- 8. Renommer les fichiers dans les sous-répertoires
- 9. Comment faire pour détecter par programme les fichiers supprimés?
- 10. par injection de dépendance dans une bibliothèque
- 11. Renommer une table dans SQL Server 2000 par programme - sp_rename est-il la seule solution?
- 12. Comment renommer une collection Verity dans ColdFusion?
- 13. Fastforward et rembobiner de la musique dans XBMC
- 14. Comment puis-je renommer par lots des fichiers?
- 15. Comment renommer une table dans SQLite 3.0?
- 16. Obtenez une liste de podcasts iTunes disponibles?
- 17. Comment dessiner une courbe de Bézier par programme dans WPF?
- 18. Comment renommer des fichiers sur une base de dates dans le shell?
- 19. Renommer des fichiers de la même manière encore et encore
- 20. Manipulation de fichiers ogg multipiste par programme
- 21. Créer une photomosaic par programme
- 22. Comment contrôler les téléchargements de fichiers dans une bibliothèque d'images SharePoint?
- 23. Comment créer une fenêtre Cocoa par programme?
- 24. Comment renommer une machine virtuelle SharePoint
- 25. Comment envoyer par programme une entrée à une application Java exécutée dans une fenêtre de navigateur?
- 26. Comment déplacer par programme des fichiers dans un répertoire WebDAV
- 27. Comment rediriger par programme 301 dans une page ASP?
- 28. Quelle est la compatibilité de DirectX avec Click Une fois le programme d'installation de déploiement?
- 29. comment créer des films Flash à partir de documents PDF
- 30. Comment insérer par programme une ligne dans un GridView?
merci, je vais jeter un oeil à ces liens – frankodwyer