# 🎬 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`: ```yaml 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: ```bash 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)