dmars8047/handymkv: Uma ferramenta para simplificar o uso do MakeMKV e da ferramenta HandBrakeCLI. · Github

PUBLICIDADE

dmars8047/handymkv: Uma ferramenta para simplificar o uso do MakeMKV e da ferramenta HandBrakeCLI. · Github

Uma ferramenta de produtividade MakeMKV + HandBrake.

HandyMKV é uma ferramenta projetada para automatizar o processo de extração de discos usando MakeMKV e depois codificar os arquivos resultantes usando Handbrake.

Achei o processo de extração manual usando MakeMKV e depois codificação usando HandBrake demorado, desarticulado e sujeito a erros. Eu queria uma ferramenta que automatizasse o processo e proporcionasse uma experiência mais amigável. Além disso, eu queria descarregar o processo do meu computador desktop principal para o meu servidor doméstico, que não tem interface gráfica e não tem interface gráfica. HandyMKV foi criado para atender a essas necessidades.

À medida que desenvolvi o HandyMKV, descobri que era capaz de adicionar recursos que considerava úteis e que tornavam o processo mais rápido e fácil. Espero que outros considerem o HandyMKV útil e que isso lhes economize tempo e esforço.

  • Extraia títulos de discos usando MakeMKV
  • Codifique arquivos de vídeo usando HandBrake
  • Opções de configuração flexíveis
  • Exibição de progresso clara e concisa
  • Simultaneidade para reduzir o tempo geral de processamento
  • Resumo do espaço economizado e do tempo decorrido
  • Limpeza automatizada de arquivos brutos não codificados
  • Histórico de execução — navegue e inspecione sessões anteriores de extração/codificação
  • Automações — execute scripts personalizados após a codificação com parâmetros provenientes de dados de execução, variáveis ​​de ambiente ou prompts do usuário
  • Análise de HandBrakeCLI e makemkvcon saída para fornecer uma experiência mais amigável

Seu objetivo principal é economizar tempo e esforço, eliminando a natureza desconectada da execução dessas tarefas manualmente e/ou sequencialmente. A simultaneidade é usada para reduzir o tempo geral necessário para concluir o processo.

HandyMKV foi projetado para ser fácil de configurar e usar. Depois que uma configuração é criada, o processo de extração e codificação de um disco é simplificado para um único comando e alguns prompts.

A saída do processo é exibida de forma clara e concisa para manter o usuário informado sobre o andamento das tarefas.

HandyMKV foi projetado para ser flexível. O usuário pode selecionar quais títulos extrair do disco e configurar as opções de codificação para atender às suas necessidades. As opções de codificação podem ser configuradas de três maneiras:

  • Usando opções de codificação simplificadas do HandyMKV – Essencialmente, uma coleção de configurações destinadas a abordar os casos de uso mais comuns. Essas configurações foram projetadas para serem fáceis de usar e entender. Eles são coletados por meio de uma série de prompts durante o processo de configuração com padrões sensatos (quando possível).
  • Usando predefinições integradas do HandBrake – HandyMKV pode ser configurado para usar uma predefinição específica do HandBrake integrada. Esta opção é para usuários familiarizados com o HandBrake e que possuem uma predefinição específica que desejam usar.
  • Usando um arquivo predefinido personalizado do HandBrake – HandyMKV pode ser configurado para usar um arquivo predefinido personalizado do HandBrake. Esta opção oferece o controle mais granular sobre o processo de codificação, mas exige que o usuário crie um arquivo predefinido do HandBrake.

Sistemas operacionais suportados

HandyMKV foi projetado para funcionar em Windows, MacOS e Linux.

MakeMKV é uma ferramenta usada para copiar o conteúdo de um disco para um arquivo no sistema local. Nota: esta ferramenta não é gratuita e uma licença deve ser adquirida para uso.

Especificamente o makemkvcon comando é usado para interagir com MakeMKV a partir da linha de comando. O makemkvcon O comando deve estar no caminho do sistema para que o HandyMKV funcione.

MakeMKV pode ser baixado aqui.

A documentação para makemkvcon pode ser encontrada aqui.

makemkvcon não está incluído no $PATH por padrão quando o MakeMKV é instalado. No entanto, o binário está incluído no pacote MakeMKV.app. O binário pode ser encontrado em /Applications/MakeMKV.app/Contents/MacOS/makemkvcon. Você pode adicionar isso ao seu $PATH ou criar um link simbólico para ele em um diretório que esteja no seu $PATH.

Handbrake é uma ferramenta usada para codificar arquivos de vídeo. O HandBrakeCLI O comando é usado para interagir com o Handbrake a partir da linha de comando. O HandBrakeCLI O comando deve estar no caminho do sistema para que o HandyMKV funcione.

O HandBrakeCLI pode ser instalado aqui. Nota: O uso do HandBrake é gratuito. Consulte o site do HandBrake para obter mais informações.

A documentação do HandBrakeCLI pode ser encontrada aqui. Isso não é necessário para uso com HandyMKV, mas é útil para contexto.

HandyMKV possui várias opções de linha de comando e subcomandos que podem ser usados ​​para controlar seu comportamento.

Usage of handymkv:
  -a string
        Automations. A comma delimited list of automation names to run after encoding.
        Example: -a move-to-plex,notify-discord
  -d string
        Discs. A comma delimited list of disc indexes to rip. Example: -d 0,1,2 (default "0")
  -v    Version. Prints the version of the application.

Subcommands:
  config                Show the current configuration.
  config setup          Run the configuration wizard.
  config edit           Open the config file in the default editor.
  discs                 List available discs.
  history               Show a summary list of past runs.
  history <number>      Show details for a specific past run.
  history clear         Delete all manifest files from the run history directory.
  automations           List all saved automations.
  automations create    Create a new automation.
  automations show <name>   Show details of an automation.
  automations delete <name> Delete an automation.

Instalar script (Linux e macOS)

A maneira mais rápida de instalar o HandyMKV no Linux ou macOS é com o script de instalação:

curl -fsSL https://raw.githubusercontent.com/dmars8047/handymkv/release/install.sh | bash

O script detecta automaticamente seu sistema operacional e arquitetura, baixa o binário apropriado da versão mais recente e o instala no /usr/local/bin (ou ~/.local/bin se /usr/local/bin não é gravável).

Binários pré-construídos estão disponíveis na página Releases para as seguintes plataformas:

  • Linux (AMD64, ARM64)
  • macOS (Intel, Apple Silicon)
  • Janelas (AMD64, ARM64)

Baixe o binário apropriado para o seu sistema, coloque-o em um diretório no seu $PATHe você está pronto para começar.

HandyMKV pode ser instalado usando o go install comando:

go install github.com/dmars8047/handymkv/cmd/handymkv@latest

Isso requer que o Go esteja instalado no sistema. Go pode ser instalado aqui.

Se você clonou o repositório, você pode construir o HandyMKV usando os comandos Makefile ou Go fornecidos diretamente.

O Makefile fornece alvos convenientes para construir HandyMKV para várias plataformas:

Construa para o seu sistema atual:

Isso criará um binário em bin/handymkv (ou bin/handymkv.exe no Windows).

Instale em seu GOPATH/bin:

Isso instala o binário no diretório Go bin, disponibilizando-o em todo o sistema.

Compilação cruzada para todas as plataformas suportadas:

Isso cria binários para Linux, macOS e Windows (arquiteturas AMD64 e ARM64) em subdiretórios separados em bin/.

Compilação cruzada para uma plataforma específica:

make linux-amd64      # Linux AMD64
make linux-arm64      # Linux ARM64
make darwin-amd64     # macOS Intel
make darwin-arm64     # macOS Apple Silicon
make windows-amd64    # Windows AMD64
make windows-arm64    # Windows ARM64

Artefatos de construção limpos:

Veja todos os alvos disponíveis:

Usando comandos Go diretamente

Alternativamente, você pode construir usando comandos Go:

# Build for current system
go build -o bin/handymkv ./cmd/handymkv

# Install to GOPATH/bin
go install ./cmd/handymkv

# Cross-compile (example for Linux AMD64)
GOOS=linux GOARCH=amd64 go build -o bin/linux-amd64/handymkv ./cmd/handymkv

O primeiro passo é criar um arquivo de configuração. Isso pode ser feito executando o seguinte comando:

Isso iniciará o assistente de configuração. Ele solicitará configurações de codificação e várias configurações operacionais. Depois de salva, a configuração será armazenada em um arquivo chamado config.json. A localização desse arquivo depende se a configuração para todo o usuário ou para todo o diretório é usada.

  • Em sistemas Unix, o arquivo de configuração de todo o usuário é armazenado em ‘~/.config/handymkv/config.json’.
  • Em sistemas Windows, o arquivo de configuração de todo o usuário é armazenado em ‘%APPDATA%\handymkv\config.json’.

Em seguida, para extrair e codificar um disco, execute o seguinte comando:

Isso primeiro lerá os títulos do disco e solicitará que você selecione quais títulos deseja copiar. Os títulos são selecionados fornecendo o índice de cada título. Vários títulos podem ser selecionados fornecendo uma lista delimitada por vírgulas. Exemplo: 0, 1, 3,4. Depois de selecionar os títulos a serem copiados, o processo começará. O andamento do processo será exibido no terminal.

Assim que o processo for concluído, um resumo será exibido mostrando o espaço economizado e o tempo necessário para concluir o processo.

Todos os arquivos de saída serão armazenados no diretório especificado no arquivo de configuração.

Nota: Se houver um config.json arquivo no diretório de trabalho em tempo de execução, esse arquivo será usado em vez do arquivo de configuração de todo o usuário.

Após cada execução, HandyMKV grava um arquivo de manifesto registrando o que foi copiado e codificado, tamanhos de arquivo, durações e se os arquivos MKV brutos foram excluídos. Esses manifestos podem ser navegados a qualquer momento com o history subcomando.

Liste todas as execuções anteriores:

Inspecione uma execução específica:

Limpe todo o histórico salvo:

Isso mostrará o número de arquivos a serem excluídos e solicitará confirmação antes de continuar.

Por padrão, os arquivos de manifesto são armazenados junto com a configuração principal:

  • Unix: ~/.config/handymkv/manifests/
  • Windows: %APPDATA%\handymkv\manifests\

Um diretório personalizado pode ser definido durante o assistente de configuração (handymkv config setup) ou configurando manifest_directory em config.json.

O histórico de execução pode ser totalmente desabilitado através do assistente de configuração ou definindo "disable_manifests": true em config.json. Quando desativado, handymkv history e handymkv history clear exibirá uma mensagem informativa em vez de tentar ler ou modificar arquivos de manifesto.

As automações permitem executar scripts ou comandos locais após o HandyMKV terminar a codificação. Cada automação é uma configuração autônoma que define um comando a ser executado e os parâmetros necessários. Os parâmetros podem ser obtidos de diferentes locais: solicitados em tempo de execução, padrões estáticos codificados ou preenchidos automaticamente a partir de dados de execução do HandyMKV.

Os scripts recebem seus parâmetros como variáveis ​​de ambiente com o prefixo HMKV_PARAM_. Por exemplo, um parâmetro chamado destination_dir torna-se HMKV_PARAM_DESTINATION_DIR. As variáveis ​​de ambiente foram escolhidas em vez dos argumentos de linha de comando para maximizar a compatibilidade entre linguagens de programação e sistemas operacionais — as convenções de análise de argumentos variam amplamente entre shells e tempos de execução (prefixos de sinalizadores, regras de cotação, manipulação de espaços em branco), enquanto as variáveis ​​de ambiente são lidas da mesma maneira em todos os lugares.

handymkv automations              # List all saved automations
handymkv automations create       # Create a new automation (interactive wizard)
handymkv automations show <name>  # Show details of an automation
handymkv automations delete <name># Delete an automation

Os arquivos de automação são armazenados como JSON em:

  • Unix: ~/.config/handymkv/automations/
  • Windows: %APPDATA%\handymkv\automations\

Nota Unix: Os scripts devem ser executáveis ​​antes que o HandyMKV possa executá-los. Certifique-se de executar chmod +x /path/to/your/script.sh depois de criar o script.

Use o -a flag para especificar automações por nome: handymkv -a move-to-plex,notify-discord

As automações são executadas após a conclusão da codificação. Se o mesmo nome for fornecido mais de uma vez, ele será executado apenas uma vez.

Ao criar uma automação, cada parâmetro possui um fonte que determina como seu valor é obtido:

FonteDescrição
promptSolicita um valor ao usuário antes do início da execução (suporta um padrão opcional)
staticUsa um valor codificado — nunca solicita ao usuário
hmkv_outputPreenchido automaticamente a partir dos dados de execução do HandyMKV após a conclusão da codificação

Os scripts herdam o ambiente completo do sistema operacional, para que possam ler variáveis ​​de ambiente (como chaves de API ou URLs de webhook) diretamente, sem precisar de um parâmetro dedicado.

ChaveValor
hb_output_dirCaminho absoluto para o diretório de saída do HandBrake para esta execução
mkv_output_dirCaminho absoluto para o diretório de saída bruto do MKV para esta execução
run_durationString de duração, por exemplo 12m34s
title_countNúmero de títulos processados ​​(string inteira)
raw_files_deleted"true" ou "false"
total_raw_sizeTamanho total dos arquivos MKV brutos em bytes (string inteira)
total_encoded_sizeTamanho total dos arquivos de saída codificados em bytes (string inteira)

Observação: Automações executadas antes arquivos MKV brutos são excluídos. Se o seu script precisar agir nos arquivos brutos (por exemplo, inspecioná-los ou movê-los), ele terá acesso a eles via mkv_output_dir.

Exemplo: mover arquivos codificados para um diretório de mídia

Crie uma automação usando o script de exemplo incluído:

handymkv automations create

Configure-o com:

  • Nome: move-media
  • Comando: /path/to/examples/automations/move-media.sh
  • Parâmetro 1: encoded_dir (fonte: hmkv_outputchave: hb_output_dir)
  • Parâmetro 2: media_dir (fonte: prompt)
  • Parâmetro 3: group_name (fonte: staticvalor: media ou o nome do seu grupo)

O script remove o final _t## identificador MakeMKV anexado a nomes de arquivos (por exemplo My_Movie_t00.mkvMy_Movie.mkv), define a propriedade e as permissões do grupo e move os arquivos para o diretório de destino.

Se um script de automação falhar (código de saída diferente de zero), HandyMKV imprime um aviso e continua com a próxima automação. Falhas de script nunca abortam o pipeline.

Running automations...
  move-to-plex: OK
  notify-discord: FAILED (exit code 1)

Os códigos de saída são registrados no manifesto de execução e ficam visíveis ao inspecionar o histórico com handymkv history .

Um exemplo de script de automação está disponível no repositório em examples/automations/. Ele demonstra todos os três tipos de origem de parâmetros: hmkv_output (diretório de saída codificado), prompt (diretório de mídia de destino) e static (nome do grupo).

HandyMKV suporta extração e codificação de vários discos em uma única execução. Esta opção destina-se a quando diversas unidades de disco estão disponíveis e conectadas ao host.

Durante essas execuções de vários discos, os arquivos de saída serão classificados em subdiretórios que indicam o disco de onde foram originados.

Para extrair e codificar vários discos, basta fornecer uma lista delimitada por vírgulas de índices de disco para o -d bandeira. Exemplo: handymkv -d 0,1,2.

Para ver uma lista de discos disponíveis, use o discs subcomando. Exemplo: handymkv discs.

HandyMKV tentará executar tarefas simultaneamente para reduzir o tempo total necessário para concluir o processo. No entanto, as tarefas de codificação consomem muitos recursos e a execução de múltiplas tarefas de codificação provavelmente retardará o processo geral. Da mesma forma, as tarefas de extração são prejudicadas pela velocidade da unidade de disco. Por esse motivo, o HandyMKV executará pipelines de extração e codificação simultaneamente, mas cada tarefa nesses pipelines será executada sequencialmente. Em execuções de vários discos, o processo de extração de cada unidade de disco será processado simultaneamente.

Se você achar o HandyMKV útil, considere apoiar o projeto:

Compre-me um café no Ko-fi

Fonte: theverge

Mais recentes

PUBLICIDADE

WP Twitter Auto Publish Powered By : XYZScripts.com