Sobre o projeto

TubeSync é um PVR (gravador de vídeo pessoal) auto-hospedado para YouTube, descrito como similar ao Sonarr, mas para YouTube, com um cliente de download integrado. Ele sincroniza canais e playlists do YouTube para diretórios locais e pode atualizar um servidor de mídia após o download. Internamente, é um wrapper de interface web em torno de yt-dlp e ffmpeg com um agendador de tarefas. Seus diferenciais declarados são uma experiência completa de PVR para atualizar servidores de mídia e melhor seleção de formatos de mídia. Também implementa tentativas graduais de falhas com temporizadores de backoff, para que downloads com falha sejam repetidos ao longo de um período prolongado. A implantação é priorizada para contêineres: uma imagem de contêiner é publicada em ghcr.io/meeb/tubesync:latest, com suporte a amd64 e arm64, e exemplos com Docker ou Podman e Docker Compose são documentados. A configuração e os downloads são montados como volumes (/config e /downloads), com variáveis de ambiente PUID, PGID e TZ. Autenticação básica HTTP opcional está disponível via HTTP_USER e HTTP_PASS. A mídia baixada é organizada em subdiretórios de vídeo e áudio sob o diretório de downloads, com mídia somente de áudio indo para audio. A administração é feita pela interface web na porta 4848. Fontes são adicionadas por URL com validação, e opções por fonte incluem frequência de indexação e qualidade de download. Indexação e download são executados automaticamente em tarefas agendadas, visíveis na aba de tarefas, e a mídia aparece na aba de mídia. Plex e Jellyfin são suportados como servidores de mídia. O README alerta sobre frequência de indexação e indexação de canais muito grandes, aconselhando intervalos longos e indexação e downloads concorrentes mínimos e educados para evitar throttling ou banimentos. Variáveis de ambiente avançadas cobrem configurações do Django, prefixo de URL, modo de depuração, hosts permitidos, limite de altura de vídeo, renomeação de fontes, prefixos de diretório, redução de metadados, workers do gunicorn, host/porta de escuta e uma conexão opcional com banco de dados externo. Um caminho de instalação manual do Django sem contêiner é documentado, junto com uma suíte de testes executável via manage.py test.