Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🥷 DevSamurai Download

📃 Obejtivo:

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.

Comunicado Oficial

📺 Demo:


📒 Metodologia:

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


💻 Stack:

  • 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)

Como instalar o projeto:

usando uv

git clone https://github.com/Gpocas/devsamurai.git
cd devsamurai
uv sync

usando python puro

git clone https://github.com/Gpocas/devsamurai.git
cd devsamurai
python -m venv .venv 
source .venv/bin/activate
python install -r requirements.txt

Note

Os comandos mostrados acima se referem a um ambiente linux e bash


🚀 Como rodar o projeto:

usando uv

uv run task start

usando python puro

source .venv/bin/activate
task start

Note

Os comandos mostrados acima se referem a um ambiente linux e bash


🔍 Observações:

  • Existe algumas variaveis de ambiente que podem ser configuradas
    • CSV_PATH o caminho onde está localizado seu arquivo csv
    • DOWNLOAD_PATH a pasta onde deverá ser salvos os arquivos baixados
    • PARALLEL_DOWNLOADS a quantidade de arquivos simultaneos que serão baixados
    • BACKEND define 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.csv contem 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.py

usando python puro:

python devsamurai/utils/extract.py

About

projeto para download das aulas da devsamurai

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages