110 lines
4.2 KiB
Markdown
110 lines
4.2 KiB
Markdown
# 🎬 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) |