← Portfólio

Software & automação · estudo de caso

Backup do Google Classroom

Um script que guarda no computador os materiais, tarefas e avisos das turmas do Classroom e os arquivos do Drive, com relatório do que não foi possível baixar.

TipoPessoal
PapelConcepção e desenvolvimento
PeríodoJun/2026
EstadoConcluído
TecnologiasPython · Google Classroom API · Google Drive API · OAuth 2.0 · requests · BeautifulSoup

O projeto em poucas palavras

O Backup do Google Classroom é um script em Python que salva no computador o conteúdo das turmas do Google Classroom — materiais de estudo, tarefas e avisos do mural — e, se a pessoa quiser, todo o Google Drive, mantendo a estrutura de pastas.

O ponto de partida

O conteúdo de uma turma vive em vários lugares ao mesmo tempo: arquivos no Drive, links para vídeos e formulários, anexos em avisos e páginas de portais externos. Quando a turma é arquivada, a conta institucional muda ou o acesso termina, boa parte disso deixa de estar disponível. Baixar tudo manualmente, turma por turma, não é realista.

O que ele faz

O script autentica na conta do Google pelo navegador, lista as turmas ativas e arquivadas e organiza o backup em pastas por turma, com subpastas para materiais, tarefas e avisos.

  • Exportação inteligente: Documentos, Planilhas e Apresentações do Google viram arquivos do Office (docx, xlsx e pptx); outros tipos nativos são exportados em PDF.

  • Links externos: segue redirecionamentos, inclusive páginas que usam atualização automática ou redirecionamento por JavaScript, até encontrar o arquivo real. Links do YouTube e de formulários são salvos em arquivos de texto.

  • Portais com login: quando um link exige autenticação externa, como em plataformas do tipo Moodle, o script não insiste: pula o item e o registra na lista de falhas, com o motivo, para ser baixado manualmente.

  • Rastreabilidade: um log com horário registra tudo o que aconteceu e um arquivo separado lista cada item que não pôde ser baixado, com o motivo.

  • Reexecução segura: arquivos já baixados são pulados, então um backup interrompido pode ser retomado.

  • Nomes seguros: caracteres inválidos no Windows são removidos e o tamanho é limitado.

Cuidados com acesso e dados

As permissões pedidas ao Google são todas de leitura: o script não altera, apaga nem publica nada na conta. As credenciais e o token de acesso ficam só na máquina e estão no arquivo de exclusão do Git, para não serem enviados ao repositório por engano. O código tem testes para os trechos mais delicados — a limpeza de nomes de arquivo, a extração de links de páginas HTML, a leitura de cookies (já pronta, mas ainda não ligada ao fluxo principal) e o comportamento quando as credenciais não existem.

Resultado e limites

Uma ferramenta de linha de comando simples de rodar e fácil de auditar: o README do repositório traz a instalação das dependências, a criação das credenciais no Google Cloud e o comando de execução. O repositório é honesto sobre os limites: arquivos muito grandes acessados por links externos podem estourar o tempo de espera, Desenhos e Sites do Google não são suportados pela API e portais que exigem login ficam de fora do download automático.

Uma ideia em movimento?

Vamos transformar a próxima pergunta em algo que funciona.

Conversar sobre um projeto ↗