Repositório contendo scripts Python para listar filmes e séries, além de um site web estático hospedado no GitHub Pages.
O site está disponível em: https://runawaydevil.github.io/pablos-media/
O site exibe automaticamente os filmes e séries lendo os arquivos TXT gerados pelos scripts Python. Possui:
- Página inicial com navegação
- Página de filmes com lista completa
- Página de séries com lista completa e contagem de episódios
- Design moderno e responsivo
- Links para download dos PDFs
Workflow: Os scripts Python rodam localmente, apenas os resultados (TXT e PDF) são enviados para o GitHub.
# 1. Execute os scripts Python localmente
python list_filmes.py
python list_series.py
# 2. Execute o script de atualização
update_site.bat# 1. Execute os scripts Python localmente
python list_filmes.py
python list_series.py
# 2. Execute o script de atualização
chmod +x update_site.sh
./update_site.sh# 1. Execute os scripts Python localmente
python list_filmes.py
python list_series.py
# 2. Adicione apenas os arquivos gerados
git add lista_filmes.txt lista_series.txt
git add lista_filmes.pdf lista_series.pdf # se existirem
# 3. Commit e push
git commit -m "Atualizar lista de filmes e séries"
git pushO GitHub Pages atualizará automaticamente o site após o push.
Scripts Python para listar filmes e séries de diretórios, encontrar duplicados e exportar para arquivos PDF e TXT.
- Python 3.6 ou superior
- Biblioteca
reportlab(para geração de PDF)
- Instale as dependências:
pip install -r requirements.txtExecute o script:
python list_filmes.pyO script irá:
- Escanear o diretório
Y:\Mídia\Filmes - Identificar todos os arquivos de vídeo em cada pasta
- Gerar
lista_filmes.txtcom a lista formatada - Gerar
lista_filmes.pdfcom a lista formatada em PDF (compacto)
Execute o script:
python list_series.pyO script irá:
- Escanear o diretório
Y:\Mídia\TV - Identificar todos os episódios (arquivos de vídeo) em cada pasta de série
- Gerar
lista_series.txtcom a lista formatada - Gerar
lista_series.pdfcom a lista formatada em PDF (compacto)
Execute o script:
python find_duplicados.pyO script irá:
- Escanear os diretórios
Y:\Mídia\FilmeseY:\Mídia\TV - Identificar arquivos duplicados por nome (mesmo nome de arquivo)
- Identificar arquivos duplicados por conteúdo (mesmo hash MD5)
- Calcular o espaço desperdiçado por duplicatas
- Gerar
lista_duplicados.txtcom relatório detalhado - Gerar
lista_duplicados.csvcom dados estruturados (caminhos completos, tamanhos, etc.) - Gerar
lista_duplicados.pdfcom relatório em PDF (compacto)
Nota: O cálculo de hash MD5 pode levar alguns minutos dependendo da quantidade de arquivos. O script mostra o progresso durante o processamento.
CSV: O arquivo CSV contém todas as informações dos duplicados em formato tabular, incluindo:
- Tipo de duplicado (por nome ou por conteúdo)
- Grupo de duplicados
- Nome do arquivo
- Caminho completo
- Pasta
- Tamanho em bytes e formatado
- Hash MD5 (para duplicados por conteúdo)
- Total de cópias no grupo
Os scripts identificam uma ampla gama de formatos de vídeo, incluindo:
Formatos Comuns:
- MPEG:
.mp4,.m4v,.mpg,.mpeg,.m1v,.m2v,.mpv,.mpv2,.mp4v - AVI/DivX:
.avi,.divx,.xvid - Matroska:
.mkv,.mk3d,.mka - QuickTime:
.mov,.qt - Windows Media:
.wmv,.wmvhd,.asf - Flash:
.flv,.f4v,.swf - Web:
.webm,.ogv,.ogm
Formatos de Transmissão/Streaming:
.ts,.m2ts,.mts,.trp,.tp
Formatos de Disco:
.vob,.vro,.dat,.bik,.smk
Formatos de Gravação:
.dvr-ms,.wtv,.pvr
Formatos de Celular:
.3gp,.3g2,.amv,.dmv
Formatos de Codec Específicos:
.h264,.h265,.hevc,.264,.265,.avc,.vc1,.vp8,.vp9,.av1
Outros Formatos:
- RealMedia:
.rm,.rmvb,.ra,.ram,.rv - Microsoft:
.mxf,.wv - Vídeo bruto:
.yuv,.y4m,.raw,.ycbcr,.rgb,.rgba - Container:
.nut - Diversos:
.nsv,.roq,.svi,.uvu,.viv,.xesc,.gifv
Total: Mais de 70 formatos de vídeo suportados!
A lista é organizada por pasta (nome do filme), mostrando:
- Número sequencial
- Nome da pasta (nome do filme)
- Arquivos de vídeo dentro de cada pasta
A lista é organizada por pasta (nome da série), mostrando:
- Número sequencial
- Nome da pasta (nome da série) e quantidade de episódios
- Lista de episódios (arquivos de vídeo) dentro de cada pasta
.
├── index.html # Página inicial do site
├── filmes.html # Página de filmes
├── series.html # Página de séries
├── style.css # Estilos do site
├── script.js # JavaScript para processar TXT
├── list_filmes.py # Script para listar filmes (roda localmente)
├── list_series.py # Script para listar séries (roda localmente)
├── find_duplicados.py # Script para encontrar arquivos duplicados (roda localmente)
├── update_site.bat # Script para atualizar site (Windows)
├── update_site.sh # Script para atualizar site (Linux/Mac)
├── requirements.txt # Dependências Python
└── README.md # Este arquivo
-
Configurar GitHub Pages:
- Vá em Settings > Pages no repositório
- Selecione GitHub Actions como source (NÃO "Deploy from a branch")
- Salve
-
Executar o Workflow:
- Vá em Actions > Deploy GitHub Pages
- Clique em Run workflow > Run workflow
- Aguarde o deploy completar (alguns minutos)
-
Acessar o site:
https://runawaydevil.github.io/pablos-media/
O workflow .github/workflows/deploy.yml está configurado para:
- Disparar automaticamente em qualquer push para a branch main
- Validar que todos os arquivos necessários existem
- Fazer deploy automático para o GitHub Pages
- Pode ser executado manualmente via Actions > Deploy GitHub Pages > Run workflow
- Scripts rodam localmente: Os scripts Python (
list_filmes.py,list_series.pyefind_duplicados.py) devem ser executados na sua máquina local - Apenas resultados no GitHub: Apenas os arquivos TXT e PDF gerados são enviados para o repositório
- Os scripts usam o nome da pasta como nome do filme/série
- Apenas arquivos de vídeo são listados (legendas e outros arquivos são ignorados)
- Os scripts tratam erros de permissão e acesso a diretórios de rede
- Os PDFs são gerados em formato compacto para economizar espaço
- O site lê os arquivos TXT via JavaScript (fetch API)
- Os arquivos TXT e PDF devem estar no repositório para o site funcionar
- O script
find_duplicados.pydetecta duplicados por nome e por conteúdo (hash MD5), calculando também o espaço desperdiçado