0 votes

script iTunes pour faire précéder le titre de l'épisode du numéro de la saison et de l'épisode (capitalisé).

Je ne m'y connais pas en matière de script, je vais donc être franc à ce sujet. Je fais de la gestion avec les scripts de Doug depuis plus d'une décennie, mais celui qui serait le plus utile (Append to Selected Tag) n'offre pas les bons champs pour ajuster les informations que je veux modifier.

J'aimerais ajouter le numéro de saison et le numéro d'épisode (à deux chiffres) au début des noms d'épisodes dans ma bibliothèque (pas le nom du fichier !), afin d'obtenir quelque chose comme 101 Pilot, 102 Deep Throat, 103 Squeeze, etc., dans mes listes de lecture intelligentes à utiliser sur AppleTV (parce que les AppleTV les plus récents fonctionnant sous tvOS n'affichent pas ces informations supplémentaires dans la vue des listes de lecture, et il est facile de perdre sa place dans les séries à long terme).

J'ai utilisé Subler et iFlicks, et les deux peuvent gérer la préparation des informations et l'ajout à iTunes, mais si je dépose les fichiers de ma bibliothèque plus ancienne dans ces applications, certains de mes commentaires, groupements, etc. sont effacés en utilisant leurs options de mise à jour des métadonnées (dans iFlicks 2, l'illustration est également modifiée, et je dois gérer chaque saison séparément pour la modifier), et aucune des deux ne gère bien les épisodes prolongés ou le classement DVD vs Aired lorsque je pars d'une page blanche.

Je suis à la recherche d'un script que je peux utiliser pour sélectionner des listes de lecture ou des émissions entières et qui ne modifie qu'une seule balise (le nom de l'épisode) en utilisant les informations d'autres balises que j'ai déjà remplies (le nom original de l'épisode, le numéro de la saison et le numéro de l'épisode) et qui peut remplir le numéro de l'épisode de 0 à 9 à 2 chiffres. Quelqu'un peut-il m'indiquer la bonne direction ?

0voto

Christian Boyce Points 1052

Je pense que ça va le faire pour vous :

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
--
-- Start by selecting the shows in a playlist. 
-- Don't select the playlist. Select the Shows.

tell application "iTunes"
    set theShowList to the selection
    repeat with aShow in theShowList
        -- get the information we need
        set theSeasonNumber to season number of aShow
        set theEpisodeNumber to episode number of aShow
        set theName to name of aShow
        --
        -- pad the episode number to two digits
        set thePaddedEpisodeNumber to "0" & theEpisodeNumber as string
        set theTwoDigitEpisodeNumber to characters -2 thru -1 of thePaddedEpisodeNumber as string
        --
        -- assemble the new name
        set theNewName to theSeasonNumber & theTwoDigitEpisodeNumber & " " & theName as string
        --
        -- set the new name
        set the name of aShow to theNewName
    end repeat
end tell

Le script pourrait être nettoyé et rendu plus efficace mais je l'ai écrit de cette façon pour qu'il soit plus facile à suivre.

Veillez à sélectionner les émissions, et non la liste de lecture. Sinon, cela ne fonctionne pas.

En expérimentant cela, j'ai remarqué que certaines émissions de télévision ont des numéros d'épisode qui comportent déjà trois chiffres. Ce serait un problème pour ce script. FYI.

Cela a été fait avec iTunes 12.9.5.5, MacOS Mojave 10.14.6.

Voici des photos avant et après. Vous allez devoir zoomer. Before-- and note the shows are selected!

enter image description here

-1voto

jimtut Points 903

J'ai un script Python appelé "tag_tv" qui fait tout ce travail, en dehors d'iTunes, mais entièrement compatible avec tous les produits Apple. Au-delà des manipulations de base des chaînes (saison, épisode, titre), la clé est d'appeler un morceau de SW trouvé ici : https://github.com/TechSmith/mp4v2

Malheureusement, je n'ai pas vu de binaires pour cela, vous devez donc le construire vous-même. Si vous avez déjà construit des logiciels open-source (configure, make, gcc, etc.), cela devrait être facile.

Ceci est tiré de mon script Python, mais vous pouvez voir ce que vous êtes en mesure de régler avec ce SW mp4 :

cmd = "mp4tags -i \"tvshow\" -S \"" + show + "\" -n " + seasonNumber + " -M " + episodeNumber + " -o " + episodeID + " -s \"" + title + "\" -y " + date + " -m \"" + desc + "\" -P " + artwork + " " + file

Si vous pouviez compiler ce logiciel, vous pourriez facilement script ceci en Shell, Python, AppleScript, etc. C'est plus efficace pour moi que d'essayer d'utiliser l'un des outils GUI que vous avez mentionnés pour faire le balisage.

-1voto

Fetchinator7 Points 7

Cela utilise ffmpeg, donc si vous ne l'avez pas, ouvrez l'application terminal et téléchargez l'installateur du paquet homebrew en entrant ceci :

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Ensuite, entrez brew install ffmpeg

Définissez le répertoire de travail actuel du terminal comme étant le dossier vers lequel vous souhaitez effectuer la sortie en saisissant cd puis faites glisser et déposez le dossier depuis une fenêtre du finder sur la fenêtre du terminal et il entrera automatiquement le chemin avec tous les caractères d'échappement nécessaires pour que vous puissiez appuyer sur Entrée.

Ensuite, copiez-le dans un fichier texte (modifiez le dossier d'entrée pour qu'il soit correct et enregistrez-le) :

path_to_episodes_folder="/Users/Family/Desktop/Folder With Spaces In The Name"
output_episodes_folder="/Users/Family/Desktop/Output"
output_extension=".mp3"

# For every file in the input folder:
for episode_path in "$path_to_episodes_folder/"*
do

# Get the metadata from the input file.
original_episode_title="$(ffprobe "$episode_path" -v quiet -show_entries format_tags="title" -of default=nw=1:nk=1)"
season_number="$(ffprobe "$episode_path" -v quiet -show_entries format_tags="season" -of default=nw=1:nk=1)"
episode_number="$(ffprobe "$episode_path" -v quiet -show_entries format_tags="episode" -of default=nw=1:nk=1)"

# If the episode is one digit in length (such as "1") add a leading zero. Otherwise use the default value (which is two digits long "01").
if [ ${#episode_number} == 1 ]
then
    formatted_episode_number="0${episode_number}"
else
    formatted_episode_number=$episode_number
fi

# Formatted output metadata title ("101 Title").
full_output_title="${season_number}${formatted_episode_number} ${original_episode_title}"

# The command for ffmpeg to modify the "title" metadata property on the output.
ffmpeg -i "$episode_path" -map 0 -c copy -hide_banner -metadata title="$full_output_title" "${original_episode_title}${output_extension}"
done

Ensuite, entrez sh puis faites glisser et déposez le chemin d'accès au fichier texte que vous venez de créer en haut de la fenêtre et appuyez sur la touche Entrée.

Je n'étais pas tout à fait sûr de ce que vous demandiez pour le formatage du titre, mais l'essentiel est que cette commande ne renvoie que la "specified_value" qui peut ensuite être utilisée pour modifier le titre des métadonnées de la sortie.

ffprobe "path/to/file/input.ext" -v quiet -show_entries format_tags="specified_value" -of default=nw=1:nk=1

Pour voir toutes les métadonnées de l'entrée d'un fichier, exécutez cette commande. ffprobe -hide_banner path/to/file/basename.ext NOTE : Je ne suis pas sûr que tous les mots-clés de la commande metadata soient corrects puisque je n'ai pas accès au fichier source. Utilisez donc la commande ci-dessus pour trouver le bon mot-clé si cela ne fonctionne pas tout de suite.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X