diff --git a/README.md b/README.md new file mode 100644 index 0000000..f8122aa --- /dev/null +++ b/README.md @@ -0,0 +1,110 @@ +# 🎬 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) \ No newline at end of file