36 votos

¿Hay alguna forma de editar los metadatos de los archivos MKV (sin volver a codificar)?

Cuando se ve un archivo MKV desde la web en VLC, la barra de título (ver "#1" en la imagen abajo) parece ser extraída de los metadatos, no del nombre de archivo.

Si abres el panel de "Obtener información" en VLC, puedes cambiar el título ("#2") y luego hacer clic en "Guardar metadatos" ("#3"), pero al volver a abrir el archivo, se muestra la información antigua.

No he encontrado ninguna otra aplicación para Mac que pueda editar metadatos de MKV. Varios ofrecen editar metadatos de mp4, pero eso no es lo que necesito.

Captura de pantalla anotada de VLC

35voto

moodforaday Puntos 2633

He encontrado una forma de hacer esto usando mkvpropedit que es parte de mkvtoolnix.

mkvpropedit "foo.mkv" -e info -s title="Este es el título"

Hay una interfaz gráfica para esta aplicación y otras instrucciones de instalación para Mac disponibles en el sitio web oficial.

16voto

Xaqron Puntos 161

La forma GUI de MKVToolNix:

  1. Selecciona editor de encabezados en el menú.

ingresa descripción de la imagen aquí

  1. Abre el archivo mkv.

  2. En información del segmento hay un elemento título, cambia el título como desees.

ingresa descripción de la imagen aquí

  1. No hay un botón de guardar, utiliza el menú principal para guardar los cambios.

ingresa descripción de la imagen aquí

Soporte de Versión macOS

Las versiones actuales de MKVToolNix requieren macOS Mojave (10.14) o una más nueva, pero versiones anteriores de MKVToolNix podrían funcionar para versiones anteriores de macOS/OS X.

A partir de v42.0.0, MKVToolNix utiliza std::optional,a lo cual requiere macOS 10.14.b

macOS High Sierra (10.13) y Sierra (10.12) deberían funcionar hasta la versión v41.0.0 "Smarra" (2019-Dic-06).

A partir de v30.0.0, MKVToolNix utiliza Qt 5.12,c lo cual requiere macOS 10.12.d

OS X El Capitan (10.11) debería funcionar hasta la versión v29.0.0 "Like It Or Not" (2018-Dic-01).

A partir de v26.0.0, el archivo "README.macOS.txt" indica que funciona solo con macOS 10.11 "El Capitan" o más nuevoe (aunque MACOSX_DEPLOYMENT_TARGET y LSMinimumSystemVersion están aún en 10.9, así que podría funcionar en Yosemite 10.10 o Mavericks 10.9).

OS X Yosemite (10.10) y Mavericks (10.9) deberían funcionar hasta la versión v25.0.0 "Prog Noir" (2018-Jul-12).

A partir de v9.7.1-build4, MACOSX_DEPLOYMENT_TARGET y LSMinimumSystemVersion están configurados en 10.9.f

OS X Mountain Lion (10.8) podría funcionar hasta la versión v9.7.1-build2 "Pandemonium" (2016-Dic-27).

A partir de v8.2.0, el archivo "README.macOS.txt" indica que funciona solo con Mac OS X 10.9 y versiones superiores, aunque LSMinimumSystemVersion aún está en 10.8.0, así que podría funcionar en Mountain Lion 10.8.

Además, MACOSX_DEPLOYMENT_TARGET no está configurado, así que debería apuntar a la versión de SO en la que se construyó. Dado que v9.7.0-build2 y v9.7.1-build2 se construyeron en Sierra 10.12, no funcionarán en Yosemite 10.10 ni en El Capitan 10.11 (aunque sí funcionarán en Mavericks 10.9 y Mountain Lion 10.8, que parecen ignorar esa restricción). Vea la discusión relevante aquí.

0 votos

Esto funciona, pero es uno a la vez - ver apple.stackexchange.com/questions/367737/… para un método grupal.

0 votos

Puede confirmar que esto funciona para un archivo a la vez.

0 votos

Sí, no es adecuado para operaciones a granel. Otras respuestas ya se encargaron de eso. Esto es para trabajos pequeños cuando no te molestas en verificar los parámetros de la línea de comandos (mkvpropedit --help).

14voto

Zetro Track Puntos 16

Como adición, se podría utilizar mkvpropedit en un script de bash para establecer el título de todos los archivos mkv en un directorio. (Dado que el nombre del archivo es el título deseado.)

#!/bin/bash

# Este script toma todos los archivos mkv en el directorio actual y establece el nombre del archivo
# (sin .mkv) como su título en los metadatos

for mkvfile in *.mkv; do
    mkvpropedit "$mkvfile" -e info -s title="${mkvfile%.mkv}"
done

5voto

Bathinda Helper Puntos 51

Solo abre el archivo en el reproductor VLC, presiona Ctrl+I, elige los metadatos deseados, título, etc., cambia y luego en la parte inferior, haz clic en 'Guardar datos'. Eso es todo.

No se necesita ningún otro editor externo.

4 votos

Eso está en el OP. Él dijo que no funcionaba.

1 votos

Intenté esto usando VLC en una Mac y funciona. Solo tienes que asegurarte de hacer clic en el botón "Guardar metadatos" en la ventana de Información de Medios. No es lo más fácil de encontrar.

1 votos

Creo que lo que puede suceder es que si lo cambias, se guardará, pero si simplemente lo eliminas, no lo hará.

0voto

SLCH000 Puntos 101

Descargué muuuchos archivos, muchos de los cuales tenían unos *** en su título, como extensión de otra respuesta hice mi propio script.

Cambia el título de todos los archivos .mkv en el directorio (y sus subdirectorios) mientras solicita una acción apropiada. Las acciones son "¿Mantener el nombre?[1] / ¿Escribir un nuevo nombre?[2] / ¿Usar el nombre de archivo como nombre de la película?[3]".

Quizás lo actualice más adelante en github, aquí está lo que hay por ahora:

#!/bin/sh

# Este script toma todos los archivos mkv en el directorio (sub) y establece su nombre/título de película
# Requiere tener instaladas las herramientas mkvtools (mkvpropedit) y mediainfo
#
# param1 Directorio de inicio (por defecto es el actual)
# param2 Acción predeterminada a realizar con los archivos
# (¿Mantener el nombre?[1] / ¿Escribir un nuevo nombre?[2] / ¿Usar el nombre de archivo como nombre de la película?[3])
# Tenga cuidado con param2 ya que este script no hace (en este momento) una copia de seguridad de los nombres de las películas existentes.

IFS=$'\n'; set -f

actualizarTitulo() {
    mkvpropedit "${1}" -e info -s title="${2}"
    echo " Actualizado a \"${2}\"";
}

obtenerTituloPelicula() {
    echo "$(mediainfo ${1} | grep "Nombre de la película" | sed 's/^.*: //')";
}

parsearNombreArchivo() {
    nombrearchivo=${1##*/}
    nombrearchivo=${nombrearchivo%.*}
    echo ${nombrearchivo}
}

elegirAccion() {
    f="${1}"
    nombreActual="${2}"
    accionPredeterminada="${3}"

    if [[ -n "${accionPredeterminada}" ]]; then
        ans="${accionPredeterminada}"
    else
        read -p "¿Mantener el nombre?[1] / ¿Escribir un nuevo nombre?[2] / ¿Usar el nombre de archivo como nombre de la película?[3] : " -n 1 ans
        echo
    fi

    case "${ans}" in

    1)
        echo "Manteniendo el nombre antiguo"
        ;;
    2)
        read -p "Nuevo nombre de la película: " nuevoNombre
        actualizarTitulo ${f} ${nuevoNombre}
        ;;
    3)
        actualizarTitulo ${f} ${nombreActual}
        ;;
    *)
        echo "Carácter inválido \"${ans}\""
        elegirAccion $@
        ;;
    esac
    echo
}

renombrarPeliculas() {
    for f in $(find ${1} -name '*.mkv'); do
        tituloActual="$(obtenerTituloPelicula ${f})"
        nombreActual="$(parsearNombreArchivo ${f})"

        echo "Ubicación del archivo - ${f}"
        echo "Nombre del archivo   - ${nombreActual}"
        echo "Nombre de la película - ${tituloActual}"

        elegirAccion ${f} ${nombreActual} ${2}
    done
    echo "Hecho"

}

renombrarPeliculas ${1:-$(pwd)} ${2}

unset IFS; set +f

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