0 votos

Script iTunes para anteponer el número de Temporada y de Episodio (rellenado) al título del episodio

No soy conocedor de los scripts, así que seré sincero al respecto. He estado haciendo gestiones con los scripts de Doug durante más de una década, pero el que sería más útil (Append to Selected Tag) no ofrece los campos correctos para ajustar la información que quiero cambiar.

Me gustaría anteponer el número de temporada y el número de episodio (rellenado con 2 dígitos) al principio de los nombres de los episodios en mi biblioteca (¡no el nombre del archivo!), de modo que obtenga algo como 101 Pilot, 102 Deep Throat, 103 Squeeze, etc., en mis listas de reproducción inteligentes para utilizarlas en el AppleTV (porque los AppleTV más nuevos que ejecutan tvOS no muestran esa información adicional en la vista de la lista de reproducción, y es fácil perder el lugar en las series de larga duración).

He utilizado Subler y iFlicks, y ambos pueden gestionar la previsión de la información y la adición a iTunes en el futuro, pero si suelto mis archivos de la biblioteca de edad a esas aplicaciones, algunos de mis comentarios, agrupaciones, etc, se borran con sus opciones de actualización de metadatos (en iFlicks 2, la obra de arte también se cambia, y tengo que manejar cada temporada por separado para cambiar de nuevo), y ninguno de los dos manejan episodios extendidos o DVD vs ordenamientos Aired bien cuando se inicia desde una pizarra limpia.

Estoy buscando un script que pueda utilizar para seleccionar listas de reproducción o programas enteros y que sólo cambie una etiqueta (el nombre del episodio) utilizando la información de otras etiquetas que ya tengo pobladas (el nombre del episodio original, el número de temporada y el número de episodio) y que pueda rellenar el número de episodio de 0 a 9 a 2 dígitos. ¿Puede alguien indicarme la dirección correcta?

0voto

Seif Puntos 121

Creo que esto te servirá:

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

El script podría limpiarse y hacerse más eficiente pero lo escribí así para que fuera más fácil de seguir.

Asegúrese de seleccionar los programas, no la lista de reproducción. De lo contrario, no funciona.

Mientras experimentaba con esto, me di cuenta de que algunos programas de televisión tienen números de episodio que ya tienen tres dígitos. Eso sería un problema para este script. PARA QUE SEPAS.

Esto se hizo con iTunes 12.9.5.5, MacOS Mojave 10.14.6.

Aquí están las fotos del antes y el después. Usted va a tener que ampliar. Before-- and note the shows are selected!

enter image description here

-1voto

CK. Puntos 923

Tengo un Python script llamado "tag_tv" que hace todo este trabajo, fuera de iTunes, pero totalmente compatible con todos los productos de Apple. Más allá de las manipulaciones básicas de cadenas (temporada, episodio, título), la clave es llamar a un trozo de SW que se encuentra aquí: https://github.com/TechSmith/mp4v2

Por desgracia, no he visto ningún binario para esto, así que tienes que construirlo tú mismo. Si alguna vez has hecho cualquier tipo de construcción de software de código abierto (configure, make, gcc, etc.) esto debería ser fácil.

Esto es de mi Python script, pero puedes ver lo que eres capaz de establecer con ese SW mp4:

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

Si pudiera compilar este SW, podría fácilmente scribir esto en Shell, Python, AppleScript, etc. Esto es más eficiente para mí que tratar de utilizar una de las herramientas de la interfaz gráfica de usuario que ha mencionado para hacer el etiquetado.

-1voto

Michael Sundell Puntos 11

Esto utiliza ffmpeg así que si no lo tienes abre la aplicación de terminal y descarga el instalador del paquete homebrew introduciendo esto:

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

A continuación, introduzca brew install ffmpeg

Establezca el directorio de trabajo actual del terminal en la carpeta a la que desea dar salida introduciendo cd entonces arrastra y suelta la carpeta desde una ventana del finder sobre la ventana del terminal y automáticamente introducirá la ruta con los caracteres de escape necesarios para que puedas pulsar enter.

Después, copie esto en un archivo de texto (cambie la carpeta de entrada para que sea correcta y guárdela):

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

A continuación, introduzca sh espacio, luego arrastra y suelta la ruta del archivo de texto que acabas de crear en la parte superior de la ventana y pulsa intro.

No estaba muy seguro de lo que estabas pidiendo en el formato del título, pero lo principal es que este comando sólo devolverá el "valor_especificado" que luego se puede utilizar para cambiar el título de los metadatos para la salida.

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

Para ver todos los metadatos de la entrada de un archivo ejecute este comando. ffprobe -hide_banner path/to/file/basename.ext NOTA: No estoy seguro de que todas las palabras clave del comando de metadatos sean correctas, ya que no tengo acceso al archivo fuente, así que utilice el comando anterior para encontrar la palabra clave correcta si no funciona de inmediato.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X