🎬 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
i965e 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)
- Clone o repositório.
- 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 pushmanualmente.
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ávelLIBVA_DRIVER_NAME=i965está 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)