yt-downloader-4k/
├── src/
│ ├── main.py # Ponto de entrada da aplicação
│ │
│ ├── gui/ # Interface gráfica
│ │ ├── main_window.py # Janela principal
│ │ └── components/ # Componentes da GUI
│ │ └── download_thread.py # Thread de download
│ │
│ ├── core/ # Lógica principal
│ │ └── downloader.py # Motor de download
│ │
│ │
│ ├── config/ # Configurações
│ │ └── settings.py # Gerenciamento de configurações
│ │
│ └── assets/ # Recursos estáticos
│ └── 4kicon.ico # Ícone da aplicação
│
├── data/ # Dados da aplicação
│ └── config.json # Configurações salvas
│
├── requirements.txt # Dependências
├── README.md # Documentação
└──
- Separação de responsabilidades: Cada módulo tem uma função específica
- Baixo acoplamento: Módulos independentes e reutilizáveis
- Alta coesão: Funcionalidades relacionadas agrupadas
- Organização visual: Agrupamento lógico de elementos
- Responsividade: Interface adaptável a diferentes tamanhos
- Feedback visual: Indicadores de progresso e status
- Validação de URL: Verifica se a URL é válida antes do download
- Informações do vídeo: Exibe dados como título, canal e duração
- Cancelamento de download: Possibilidade de interromper downloads
- Pasta padrão inteligente: Auto-seleciona pasta Downloads do sistema
- Tratamento de erros robusto: Captura e exibe erros de forma amigável
- Threading aprimorado: Download não bloqueia a interface
- Gestão de memória: Melhor uso de recursos do sistema
- Configurações persistentes: Salva todas as preferências do usuário
- Sanitização de nomes: Remove caracteres inválidos dos arquivos
- Logs estruturados: Sistema de logging para debugging
- Interface intuitiva: Layout claro e funcional
- Feedback em tempo real: Progresso detalhado com velocidade e tamanho
- Configurações lembradas: Mantém últimas configurações usadas
- Mensagens informativas: Avisos e confirmações claras
# Clone o projeto
git clone <repo-url>
cd yt-4k-downloader
# Instale as dependências
pip install -r requirements.txt
# Execute a aplicação
python src/main.py- Crie arquivo em
src/services/ - Implemente a lógica do serviço
- Importe onde necessário
- Edite
src/gui/main_window.py - Adicione componentes em
src/gui/components/ - Mantenha estilos em
config/settings.py
- Modifique
src/config/settings.py - Atualize
APP_CONFIGpara novas opções - Adicione validações no
ConfigManager
