🎬 PyMedia Manager (V4 - NiceGUI Edition)

PyMedia Manager é uma suíte completa e self-hosted para gerenciamento de mídia doméstica. Diferente de scripts simples, ele funciona como um Sistema Operacional dentro do navegador, permitindo gerenciar, renomear, baixar e converter vídeos com interface rica e responsiva.

Otimização Extrema: Projetado especificamente para resgatar o poder de processadores antigos Intel Haswell (4ª Geração), utilizando drivers i965 e acesso direto ao hardware via FFmpeg VAAPI.


Módulos e Funcionalidades

1. 📂 Gerenciador de Arquivos (Explorer)

Uma experiência de desktop no navegador:

  • Navegação Visual: Ícones grandes, visualização em Grade ou Lista.
  • Interatividade: Clique duplo para entrar em pastas, Botão Direito para menu de contexto.
  • Player & Inspetor: Toca vídeos compatíveis direto no navegador e lista todas as faixas de áudio/legenda (FFprobe) para conferência técnica sem precisar baixar o arquivo.
  • Ferramentas: Criar pastas, Renomear, Excluir e Mover.

2. 🏷️ Renomeador de Séries (Regex Pro)

Organiza automaticamente downloads bagunçados:

  • Detecção: Suporta S01E01, 1x01, S01 - EP01, Season 1 Episode 1.
  • Estrutura: Cria automaticamente: Nome da Série / Temporada XX / Episódio YY.mkv.
  • Fluxo: Navegue até a pasta, clique em "Analisar", confira o Preview e aplique.

3. ⚙️ Encoder (Haswell Optimized)

O coração do sistema, focado em qualidade e estabilidade:

  • Engine: FFmpeg via VAAPI Nativo (sem camada QSV bugada).
  • Qualidade: Modo CQP 25 (Qualidade Constante) - Arquivos pequenos em diálogos, bitrate alto em ação.
  • Smart Filter: Mantém apenas áudios (POR/ENG/JPN) e legendas (PT-BR).
  • Persistência: O processo roda em background. Você pode fechar o navegador ou dar F5 que a conversão continua.
  • Monitor: Duas barras de progresso (Arquivo Atual / Fila Total) com log de velocidade em tempo real.

4. 📺 Downloader (yt-dlp)

  • Baixa vídeos do YouTube/Twitch/Vimeo.
  • Barra de progresso real.
  • Opções para "Melhor Qualidade (MKV)" ou "Apenas Áudio".

5. 🚀 Deployer (Mover Final)

  • Interface de Tela Dividida (Origem vs Destino).
  • Previne erros de movimentação mostrando visualmente para onde os arquivos vão (ex: enviar para o Jellyfin/OneDrive).

🚀 Instalação e Deploy

Pré-requisitos

  • Docker e Docker Compose.
  • Hardware Intel com iGPU (QuickSync).
  • Drivers de vídeo no host (/dev/dri).

Opção A: Rodar Imagem Pronta (Produção)

Crie um docker-compose.yml:

version: "3.8"
services:
  pymediamanager:
    # Substitua pelo seu endereço do Gitea
    image: gitea.creidsuhs.net/creidsu/pymediamanager:latest
    
    container_name: pymediamanager
    privileged: true
    restart: unless-stopped
    
    devices:
      - /dev/dri:/dev/dri
    group_add:
      - "993" # Verifique com 'ls -ln /dev/dri/renderD128'
      
    environment:
      - TZ=America/Sao_Paulo
      - LIBVA_DRIVER_NAME=i965 # Obrigatório para Haswell
      
    volumes:
      - ./data:/app/data
      - /home/creidsu/downloads:/downloads
      # Pastas de Destino Final (Deployer)
      - /home/creidsu/onedrive/Jellyfin:/media/Jellyfin
      
    ports:
      - 8080:8080 # Porta do NiceGUI

Opção B: Compilar Localmente (Desenvolvimento)

  1. Clone o repositório.
  2. Execute:
docker-compose up -d --build

🛠️ Solução de Problemas

1. Navegador pede login do GitHub ao sincronizar

  • Isso é um erro do VS Code. Abra o terminal integrado e use git push manualmente.

2. Erro no Player: "Vídeo não suportado"

  • O navegador (Chrome/Firefox) não suporta nativamente MKV com codecs complexos. O player serve para preview rápido. Use a lista lateral (Inspetor) para confirmar se as legendas e áudios estão corretos.

3. Encoder travando no início

  • O sistema tenta limpar automaticamente o driver iHD. Se persistir, verifique se a variável LIBVA_DRIVER_NAME=i965 está ativa no compose.

📦 Stack Tecnológica

  • Frontend/Backend: Python (NiceGUI)
  • Engine de Vídeo: FFmpeg + FFprobe
  • Drivers: Intel VAAPI (Legacy i965)
  • Container: Docker (Ubuntu 22.04)
Description
No description provided
Readme 1.1 MiB
Languages
Python 99.6%
Dockerfile 0.4%