Recentemente foi anunciado que a plataforma de ensino 'DevSamurai' está encerrando suas atividades e com isso liberaram para download varios cursos de diferentes assuntos, esse projeto tem o intuito de ser um facilitador para baixar os arquivos disponiveis.
Foi usado um método de download assincrono utilizando os protocolos HTTP/2 e HTTP/3 via chucks para processamento dos bytes em pequenos lotes
- Python 3.12
- httpx (HTTP/2)
- niquests (HTTP/3)
- aiofiles (async save bytes)
- rich (show progress bar)
- csv (persist data)
- asyncio (run event loop)
- ruff (formater and linter)
- uv (dependency manager)
usando uv
git clone https://github.com/Gpocas/devsamurai.git
cd devsamurai
uv syncusando python puro
git clone https://github.com/Gpocas/devsamurai.git
cd devsamurai
python -m venv .venv
source .venv/bin/activate
python install -r requirements.txtNote
Os comandos mostrados acima se referem a um ambiente linux e bash
usando uv
uv run task startusando python puro
source .venv/bin/activate
task startNote
Os comandos mostrados acima se referem a um ambiente linux e bash
- Existe algumas variaveis de ambiente que podem ser configuradas
CSV_PATHo caminho onde está localizado seu arquivo csvDOWNLOAD_PATHa pasta onde deverá ser salvos os arquivos baixadosPARALLEL_DOWNLOADSa quantidade de arquivos simultaneos que serão baixadosBACKENDdefine qual backend para download dos arquivos sera usado (httpx ou niquests)
Important
Não existe um minimo ou um máximo para a configuração de PARALLEL_DOWNLOADS, porém vale lembrar que valores altos vão aumentar o tempo de conexão com o servidor o que pode ocasionar no encerramento da stream por parte do servidor.
- Na pasta
data/aulas.csvcontem todos os links já extraidos e higienizados para facilitar o processo, porém caso voce queira pode gerar esse arquivo voce mesmo:
usando uv:
uv run devsamurai/utils/extract.pyusando python puro:
python devsamurai/utils/extract.py