Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- from os import path
- import subprocess
- import glob
- # Definición de rutas por defecto de ejecutables y directorio de trabajo
- mkvmerge = r"C:\Program Files\MKVToolNix\mkvmerge.exe"
- ruta_archivos = r"C:\Users\Ovichan\Desktop\Serie\\" # os.path.split(__file__)[0]
- # Funcion para extraer el número del episodio. Devuelve la primera aparición de un numero
- def extraer_numero(cadena):
- words = cadena.split(" ")
- for token in words:
- if token[0].isdigit():
- # print(token)
- return token
- return None
- # Definimos la función para sustituir la pista del archivo matroska
- def sustituir_pista(source, dest, pista, pos):
- # Configuramos los parámetros de ejecución de mkvmerge
- mkvmerge_args = [
- mkvmerge,
- "--output",
- ruta_archivos+dest,
- "--audio-tracks",
- "!"+pos,
- "(",
- ruta_archivos+source,
- ")",
- "--language",
- "0:es",
- "--forced-track",
- "0:yes",
- "--track-name",
- "0:Español 2.0 [DVD]",
- "(",
- ruta_archivos+pista,
- ")",
- "--track-order",
- "0:0,1:0,0:2"
- ]
- # Invocamos la ejecución de mkvmerge con sus opciones
- subprocess.run(mkvmerge_args)
- def main():
- # Creamos un directorio
- try:
- os.mkdir(ruta_archivos+"Hechos")
- except FileExistsError as e:
- # print("Ya existe el directorio " + e.filename)
- pass
- # Recorremos el directorio y sustituimos las pistas
- archivos = os.listdir(ruta_archivos)
- for archivo in archivos:
- # tokens = str(archivo).split(".",2)
- nombre, extension = path.splitext(archivo)
- # print(f"{nombre}: {extension}")
- if extension == ".mkv":
- # Obtenemos el numero del nombre
- numero = extraer_numero(nombre)
- # Buscamos el audio con el número coincidente
- pista_nueva = glob.glob(ruta_archivos+"/*" + numero + "*[*].flac")
- # Si no existen coincidencias salimos del programa
- if len(pista_nueva) == 0:
- print("No se ha encontrado ningún archivo para sustituir.")
- exit()
- # Recuperamos la ruta y el nombre de la pista
- ruta, pista_nombre = os.path.split(pista_nueva[0])
- # Procedemos a la sustitución de la pista
- sustituir_pista(archivo, nombre+"_mod"+extension, pista_nombre,"1")
- # Movemos el archivo original a una carpeta
- os.rename(ruta_archivos+archivo, ruta_archivos+"Hechos\\"+archivo)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement