Este é um fork do coursera-dl que funciona com o Python moderno e o coursera.org moderno, com recursos e patches adicionais.
Downloader do Coursera
Introdução
Características
Isenção de responsabilidade
Instruções de instalação
Método de instalação alternativo para sistemas Unix
ArchLinux
Instalando dependências por conta própria
Método de instalação recomendado para todos os sistemas operacionais
Formas alternativas de instalar dependências ausentes
Docker
Windows
Crie uma conta no Coursera
Executando o script
Retomando downloads
Solução de problemas
Questões da China
Foram encontradas 0 seções e 0 palestras nesta página
Tempo limite de download
Windows: suporte a proxy
Windows: Falha ao criar processo
SSLError: [Erro 1] _ssl.c:504: erro:14094410:Rotinas SSL:SSL3_READ_BYTES:falha de handshake de alerta sslv3
CDN alternativo para MathJax.js
Relatando problemas
Registrando um problema/relatando um bug
Opinião
Contato
Este script facilita o download em lote de recursos de palestras (por exemplo, vídeos, ppt, etc.) para aulas do Coursera. Dado um ou mais nomes de turmas, ele obtém nomes de semanas e turmas da página de palestras e, em seguida, baixa os materiais relacionados em arquivos e diretórios com nomes apropriados.
Este trabalho foi originalmente inspirado em parte pelo [youtube-dl][3], do qual baixei muitos outros vídeos bons, como os da Khan Academy.
Suporte para todos os tipos de cursos (ou seja, "Plataforma Antiga"/cursos baseados em tempo, bem como "Plataforma Nova"/cursos sob demanda).
Nomes intencionalmente detalhados, para que sejam exibidos e classificados corretamente na maioria das interfaces (por exemplo, VLC ou MX Video em dispositivos Android).
Seção baseada em Regex (semana) e filtros de nome de palestra para baixar apenas determinados recursos.
Filtro de extensão de formato de arquivo para obter os tipos de recursos desejados.
Argumentos padrão carregados do arquivo coursera-dl.conf
.
Funcionalidade principal testada em Linux, Mac e Windows.
cs-dlp
deve ser usado apenas para o material que o Coursera dá acesso para download.
Não encorajamos qualquer uso que viole seus Termos de Uso. Um trecho relevante:
"[...] O Coursera concede a você uma licença pessoal, não exclusiva e intransferível para acessar e usar os Sites. Você pode baixar material dos Sites apenas para seu uso pessoal e não comercial. Você não pode copiar de outra forma , reproduzir, retransmitir, distribuir, publicar, explorar comercialmente ou de outra forma transferir qualquer material, nem poderá modificar ou criar trabalhos derivados do material."
cs-dlp
requer Python 3 e uma conta Coursera inscrita na classe de interesse.
Nota: cs-dlp
não é compatível com Python 2.
Em qualquer sistema operacional, certifique-se de que o local do executável Python seja adicionado à sua variável de ambiente PATH
e, depois de instalar as dependências (veja a próxima seção), para um uso básico , você precisará invocar o script do diretório principal do projeto e acrescente a palavra python
no início. Você também pode usar recursos mais avançados do programa consultando a seção "Executando o script" deste documento.
Observação: você já deve ter concordado (manualmente) com a Honra do Código dos cursos específicos que deseja usar com cs-dlp
.
A partir de uma linha de comando (de preferência, de um ambiente virtual), basta emitir o comando:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
Nota 1: Recomendamos fortemente que você não instale o pacote globalmente em sua máquina (ou seja, com privilégios de root/administrador), pois os módulos instalados podem entrar em conflito com outros aplicativos Python que você instalou em seu sistema. Prefira usar a opção --user
para pip install
.
cs-dlp
atualmente não possui um pacote AUR. Ajude bem vindo!
Se você ainda não tem uma, crie uma conta no [Coursera][1] e inscreva-se em um curso. Consulte https://www.coursera.org/courses para obter a lista de aulas.
Para autenticar no Coursera, você precisa de um cookie CAUTH.
Atualmente, existem duas maneiras suportadas de fazer isso: você pode fazer com que cs-dlp
o obtenha automaticamente do seu navegador ou pode passar uma manualmente.
Maneira automática
chrome
para Google Chrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
Abra seu navegador favorito e faça login no Coursera
Chame cs-dlp
com a opção --cauth-auto browser
.
As opções válidas para browser
são:
Maneira manual
Passe um cookie CAUTH para a opção --cauth
.
Consulte cs-dlp --help
para obter uma referência completa e atualizada sobre as opções de tempo de execução suportadas por este utilitário.
Execute o script para baixar os materiais, fornecendo seu cookie Coursera CAUTH, os nomes das aulas, bem como quaisquer parâmetros adicionais:
cs-dlp --cauth-auto chrome modelthinking-004
Aqui estão alguns exemplos de como invocar cs-dlp
na linha de comando:
Multiple classes: cs-dlp --cauth-auto chrome saas historyofrock1-001 algo-2012-002 Filter by section name: cs-dlp --cauth-auto chrome -sf "Chapter_Four" crypto-004 Filter by lecture name: cs-dlp --cauth-auto chrome -lf "3.1_" ml-2012-002 Download only ppt files: cs-dlp --cauth-auto chrome -f "ppt" qcomp-2012-001 Get the preview classes: cs-dlp --cauth-auto chrome -b ni-001 Download videos at 720p: cs-dlp --cauth-auto chrome --video-resolution 720p ni-001 Specify download path: cs-dlp --cauth-auto chrome --path=C:CourseraClasses comnetworks-002 Display help: cs-dlp --help Maintain a list of classes in a dir: Initialize: mkdir -p CURRENT/{class1,class2,..classN} Update: cs-dlp -n --path CURRENT `ls CURRENT`
Nota: Se o seu comando ls
tiver um alias para exibir uma saída colorida, você poderá ter problemas. Certifique-se de escapar do comando ls
(use ls
) para garantir que nenhum caractere especial seja enviado ao script.
Observe que oferecemos suporte aos cursos da Nova Plataforma ("sob demanda").
Por padrão, os vídeos são baixados com resolução de 540p. Para cursos sob demanda, o sinalizador --video-resolution
aceita valores de 360p, 540p e 720p.
Para baixar apenas os arquivos de legenda .txt
e/ou .srt
em vez dos vídeos, use --ignore-formats mp4 --subtitle-language en
ou qualquer formato em que os vídeos estejam codificados e os idiomas desejados para legendas.
Se você deseja armazenar seus parâmetros preferidos, crie um arquivo chamado coursera-dl.conf
onde o script deve ser executado, com o seguinte formato:
--subtitle-language en,zh-CN|zh-TW --download-quizzes #--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js # more other parameters
Os parâmetros especificados no arquivo serão substituídos se forem fornecidos novamente na linha de comando.
Nota: Em coursera-dl.conf
, todos os parâmetros não devem ser colocados entre aspas.
No modo padrão, quando você interrompe o processo de download pressionando CTRL + C , os arquivos parcialmente baixados serão excluídos do disco e você deverá iniciar o processo de download desde o início. Se o seu download foi interrompido por algo diferente de KeyboardInterrupt ( CTRL + C ), como uma falha repentina do sistema, os arquivos parcialmente baixados permanecerão no seu disco e na próxima vez que você iniciar o processo novamente, esses arquivos serão descartados da lista de downloads! seu trabalho para excluí-los manualmente antes do próximo início. Por esse motivo adicionamos uma opção chamada --resume
que continua seus downloads de onde pararam:
cs-dlp --cauth-auto chrome --resume sdn1-001
Esta opção também pode ser usada com downloaders externos:
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
Nota 1 : Alguns downloaders externos usam seu próprio recurso de currículo integrado, que pode não ser compatível com outros, portanto, use-os por sua própria conta e risco.
Nota 2 : Lembre-se de que no modo de retomada, os arquivos interrompidos NÃO serão excluídos do seu disco.
Se você tiver problemas ao baixar os materiais da aula, tente ver se uma das ações a seguir resolve seu problema:
Certifique-se de que o nome da turma que você está usando corresponde ao nome do recurso usado no URL dessa turma: https://www.coursera.org/learn/
Você tentou limpar os cookies/credenciais em cache com a opção --clear-cache
?
Observe que muitos cursos (a maioria, talvez?) podem remover os materiais algum tempo após a conclusão do curso, enquanto outros cursos podem reter os materiais até uma próxima sessão/oferta do mesmo curso (para evitar problemas com desonestidade acadêmica, aparentemente).
Resumindo, não há garantia de que você conseguirá fazer o download após o término do curso e, infelizmente, não podemos ajudá-lo com isso.
Pode-se exportar um arquivo de cookies estilo Netscape com uma extensão de navegador ([1][9], [2][10]) e usá-lo com a opção -c
. Isto é útil quando a autenticação via senha não está funcionando (o processo de autenticação muda de vez em quando).
Para cursos que ainda não foram iniciados, mas já tiveram uma iteração anterior, às vezes é disponibilizada uma prévia, contendo todas as aulas do último curso. Esses arquivos podem ser baixados passando o parâmetro --preview
.
Se você receber um erro como Could not find class:
, então:
Verifique se o nome do curso está correto. Os nomes das turmas atuais no coursera são compostos por um nome abreviado do curso, por exemplo class
e a versão atual do curso (um número). Por exemplo, para uma classe chamada class
, você teria que usar class-001
, class-002
etc.
Em segundo lugar, verifique se você está matriculado no curso. Você não poderá acessar os materiais do curso se não estiver oficialmente inscrito e concordar com o curso de honra por meio do site .
Se você é da China e está tendo problemas para baixar vídeos, adicionar "52.84.167.78 d3c33hcgiwev3.cloudfront.net" no arquivo hosts (/etc/hosts) e atualizar o DNS com "ipconfig/flushdns" pode funcionar (consulte https: //github.com/googlehosts/hosts para mais informações).
Em primeiro lugar, certifique-se de estar inscrito no curso que deseja baixar.
Muitos cursos antigos já fecharam as inscrições tantas vezes que não é uma opção. Neste caso, tente fazer o download com a opção --preview
. Alguns cursos permitem o download de materiais de aula sem inscrição, mas isso não é comum e não é garantido que funcione em todos os cursos.
Por fim, você pode baixar os vídeos se tiver, pelo menos, o arquivo de índice que lista todos os materiais do curso. Talvez seu amigo inscrito possa salvar a página do curso para você. Nesse caso, use a opção --process_local_page
.
Como alternativa, você pode tentar várias extensões de navegador projetadas para esse problema.
Se nenhuma das opções acima funcionar para você, não há nada que possamos fazer.
cs-dlp suporta downloaders externos, mas observe que eles só são usados para baixar materiais após a análise do programa de estudos, por exemplo, vídeos, PDFs, alguns folhetos e arquivos adicionais (o programa de estudos é sempre baixado usando o downloader interno). Se tiver problemas ao baixar esses materiais, você pode começar a usar o downloader externo e configurar seus valores de tempo limite. Por exemplo, você pode usar o downloader aria2c passando a opção --aria
:
cs-dlp --cauth-auto chrome --path . --aria2
E coloque isso no arquivo de configuração do aria2c ~/.aria2/aria2.conf
para reduzir o tempo limite:
connect-timeout=2 timeout=2 bt-stop-timeout=1
A configuração de tempo limite para downloader interno não é suportada.
Se você estiver no Windows atrás de um proxy, configure as variáveis de ambiente antes de executar o script da seguinte maneira:
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
Discussão relacionada: #205
MathJax.js
Ao salvar a página de um curso, habilitamos a renderização MathJax
para equações matemáticas, injetando MathJax.js
no cabeçalho. O script está usando um serviço CDN fornecido por mathjax.org. No entanto, esse URL não está acessível em alguns países/regiões. Você pode fornecer um parâmetro --mathjax-cdn
para especificar o arquivo MathJax.js
que está acessível em sua região.
Antes de relatar qualquer problema, siga as etapas abaixo:
Verifique se você está executando a versão mais recente do script
Se o problema persistir, sinta-se à vontade para abrir um problema em nosso bugtracker, preencha o modelo de problema com o máximo de informações possível .