Esta es una bifurcación de Coursera-dl que funciona con Python moderno y Coursera.org moderno, con funciones y parches adicionales.
Descargador de Coursera
Introducción
Características
Descargo de responsabilidad
Instrucciones de instalación
Método de instalación alternativo para sistemas Unix.
ArchLinux
Instalando dependencias por tu cuenta
Método de instalación recomendado para todos los sistemas operativos
Formas alternativas de instalar dependencias faltantes
Estibador
ventanas
Crea una cuenta con Coursera
Ejecutando el guión
Reanudar descargas
Solución de problemas
Problemas de China
Encontradas 0 secciones y 0 conferencias en esta página
Descargar tiempos de espera
Windows: soporte de proxy
Windows: no se pudo crear el proceso
SSLError: [Errno 1] _ssl.c:504: error:14094410:rutinas SSL:SSL3_READ_BYTES:fallo del protocolo de enlace de alerta sslv3
CDN alternativo para MathJax.js
Informar problemas
Presentar un problema/Reportar un error
Comentario
Contacto
Este script facilita la descarga por lotes de recursos de conferencias (por ejemplo, videos, ppt, etc.) para las clases de Coursera. Dados uno o más nombres de clases, obtiene los nombres de las semanas y las clases de la página de conferencias y luego descarga los materiales relacionados en archivos y directorios con los nombres adecuados.
Este trabajo se inspiró originalmente en parte en [youtube-dl][3] del cual he descargado muchos otros buenos videos como los de Khan Academy.
Soporte para todo tipo de cursos (es decir, cursos de "Plataforma antigua"/basados en tiempo y cursos de "Plataforma nueva"/bajo demanda).
Nombres intencionalmente detallados, para que se muestren y ordenen correctamente en la mayoría de las interfaces (por ejemplo, VLC o MX Video en dispositivos Android).
Sección basada en expresiones regulares (semana) y filtros de nombre de conferencia para descargar solo ciertos recursos.
Filtro de extensión de formato de archivo para capturar los tipos de recursos que desee.
Argumentos predeterminados cargados desde el archivo coursera-dl.conf
.
Funcionalidad principal probada en Linux, Mac y Windows.
cs-dlp
está diseñado para usarse únicamente con el material que Coursera le brinda acceso para descargar.
No fomentamos ningún uso que viole sus Términos de uso. Un extracto relevante:
"[...] Coursera le otorga una licencia personal, no exclusiva e intransferible para acceder y utilizar los Sitios. Puede descargar material de los Sitios solo para su uso personal y no comercial. De lo contrario, no puede copiar , reproducir, retransmitir, distribuir, publicar, explotar comercialmente o transferir de otro modo cualquier material, ni podrá modificar ni crear trabajos derivados del material".
cs-dlp
requiere Python 3 y una cuenta de Coursera inscrita en la clase de interés.
Nota: cs-dlp
no es compatible con Python 2.
En cualquier sistema operativo, asegúrese de que la ubicación del ejecutable de Python esté agregada a su variable de entorno PATH
y, una vez que tenga las dependencias instaladas (consulte la siguiente sección), para un uso básico , deberá invocar el script desde el directorio principal del proyecto y antepóngale la palabra python
. También puede utilizar funciones más avanzadas del programa consultando la sección "Ejecución del script" de este documento.
Nota: Ya debe haber aceptado (manualmente) el Honor del Código de los cursos particulares que desea utilizar con cs-dlp
.
Desde una línea de comando (preferiblemente, desde un entorno virtual), simplemente emita el comando:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
Nota 1: Le recomendamos encarecidamente que no instale el paquete globalmente en su máquina (es decir, con privilegios de root/administrador), ya que los módulos instalados pueden entrar en conflicto con otras aplicaciones Python que haya instalado en su sistema. Prefiere usar la opción --user
para pip install
.
cs-dlp
actualmente no tiene un paquete AUR. ¡Ayuda bienvenida!
Si aún no tienes una, crea una cuenta [Coursera][1] e inscríbete en una clase. Consulte https://www.coursera.org/courses para obtener la lista de clases.
Para autenticarse con Coursera, necesita una cookie CAUTH.
Actualmente hay dos formas compatibles de hacerlo: puede hacer que cs-dlp
lo obtenga automáticamente desde su navegador o puede pasar una manualmente.
Manera automática
chrome
para Google Chrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
Abre tu navegador favorito e inicia sesión en Coursera
Llame cs-dlp
con la opción --cauth-auto browser
.
Las opciones válidas para browser
son:
Manera manual
Pase una cookie CAUTH a la opción --cauth
.
Consulte cs-dlp --help
para obtener una referencia completa y actualizada sobre las opciones de tiempo de ejecución admitidas por esta utilidad.
Ejecute el script para descargar los materiales proporcionando su cookie CAUTH de Coursera, los nombres de las clases y cualquier parámetro adicional:
cs-dlp --cauth-auto chrome modelthinking-004
A continuación se muestran algunos ejemplos de cómo invocar cs-dlp
desde la línea 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: Si su comando ls
tiene un alias para mostrar una salida coloreada, puede experimentar problemas. Asegúrese de escapar del comando ls
(use ls
) para asegurarse de que no se envíen caracteres especiales al script.
Tenga en cuenta que admitimos los cursos de la Nueva Plataforma ("bajo demanda").
De forma predeterminada, los vídeos se descargan con una resolución de 540p. Para cursos bajo demanda, el indicador --video-resolution
acepta valores de 360p, 540p y 720p.
Para descargar solo los archivos de subtítulos .txt
y/o .srt
en lugar de los videos, use --ignore-formats mp4 --subtitle-language en
o cualquier formato en el que estén codificados los videos y los idiomas deseados para los subtítulos.
Si desea almacenar sus parámetros preferidos, cree un archivo llamado coursera-dl.conf
donde se supone que se ejecutará el script, con el siguiente 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
Los parámetros que se especifican en el archivo se anularán si se proporcionan nuevamente en la línea de comando.
Nota: En coursera-dl.conf
, todos los parámetros no deben estar entre comillas.
En el modo predeterminado, cuando interrumpes el proceso de descarga presionando CTRL + C , los archivos parcialmente descargados se eliminarán de tu disco y tendrás que iniciar el proceso de descarga desde el principio. Si su descarga fue interrumpida por algo que no sea KeyboardInterrupt ( CTRL + C ), como una falla repentina del sistema, los archivos parcialmente descargados permanecerán en su disco y la próxima vez que inicie el proceso nuevamente, estos archivos se descartarán de la lista de descargas. Por lo tanto, es su trabajo para eliminarlos manualmente antes del próximo inicio. Por esta razón agregamos una opción llamada --resume
que continúa las descargas desde donde se detuvieron:
cs-dlp --cauth-auto chrome --resume sdn1-001
Esta opción también se puede utilizar con descargadores externos:
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
Nota 1 : Algunos descargadores externos utilizan su propia función de currículum incorporada que puede no ser compatible con otros, así que utilícelos bajo su propia responsabilidad.
Nota 2 : Recuerde que en el modo de reanudación, los archivos interrumpidos NO se eliminarán de su disco.
Si tiene problemas al descargar materiales de clase, intente ver si una de las siguientes acciones resuelve su problema:
Asegúrese de que el nombre de la clase que está utilizando corresponda con el nombre del recurso utilizado en la URL de esa clase: https://www.coursera.org/learn/
¿Has intentado limpiar las cookies/credenciales almacenadas en caché con la opción --clear-cache
?
Tenga en cuenta que muchos cursos (¿la mayoría, quizás?) pueden eliminar los materiales un poco después de completar el curso, mientras que otros cursos pueden conservar los materiales hasta una próxima sesión/ofrecimiento del mismo curso (para evitar problemas de deshonestidad académica, aparentemente).
En resumen, no se garantiza que puedas realizar la descarga una vez finalizado el curso y, lamentablemente, no podemos ayudarte con esto.
Se puede exportar un archivo de cookies estilo Netscape con una extensión de navegador ([1][9], [2][10]) y usarlo con la opción -c
. Esto resulta útil cuando la autenticación mediante contraseña no funciona (el proceso de autenticación cambia de vez en cuando).
Para los cursos que aún no han comenzado, pero que han tenido una iteración anterior, a veces hay disponible una vista previa que contiene todas las clases del último curso. Estos archivos se pueden descargar pasando el parámetro --preview
.
Si recibe un error como Could not find class:
, entonces:
Verifique que el nombre del curso sea correcto. Los nombres de clases actuales en Coursera están compuestos por un nombre corto de curso, por ejemplo, class
y la versión actual del curso (un número). Por ejemplo, para una clase llamada class
, tendrías que usar class-001
, class-002
etc.
En segundo lugar, verifique que esté inscrito en el curso. No podrá acceder a los materiales del curso si no está oficialmente inscrito y no ha aceptado el curso de honor a través del sitio web .
Si eres de China y tienes problemas para descargar videos, agregar "52.84.167.78 d3c33hcgiwev3.cloudfront.net" en el archivo de hosts (/etc/hosts) y actualizar DNS con "ipconfig/flushdns" puede funcionar (consulta https: //github.com/googlehosts/hosts para obtener más información).
En primer lugar, asegúrese de estar inscrito en el curso que desea descargar.
Muchos cursos antiguos ya han cerrado la inscripción, por lo que a menudo no es una opción. En este caso, intente descargar con la opción --preview
. Algunos cursos permiten descargar materiales de conferencias sin inscribirse, pero no es común y no se garantiza que funcione en todos los cursos.
Finalmente, puedes descargar los videos si tienes, al menos, el archivo índice que enumera todos los materiales del curso. Tal vez su amigo que esté inscrito pueda guardarle la página del curso. En ese caso utilice la opción --process_local_page
.
Alternativamente, es posible que desees probar varias extensiones de navegador diseñadas para este problema.
Si nada de lo anterior funciona para usted, no hay nada que podamos hacer.
cs-dlp admite descargadores externos, pero tenga en cuenta que solo se utilizan para descargar materiales después de que se haya analizado el programa de estudios, por ejemplo, videos, archivos PDF, algunos folletos y archivos adicionales (el programa de estudios siempre se descarga utilizando el descargador interno). Si tiene problemas con la descarga de dichos materiales, es posible que desee comenzar a utilizar un descargador externo y configurar sus valores de tiempo de espera. Por ejemplo, puedes usar el descargador aria2c pasando la opción --aria
:
cs-dlp --cauth-auto chrome --path . --aria2
Y ponga esto en el archivo de configuración de aria2c ~/.aria2/aria2.conf
para reducir los tiempos de espera:
connect-timeout=2 timeout=2 bt-stop-timeout=1
No se admite la configuración de tiempo de espera para el descargador interno.
Si está en Windows detrás de un proxy, configure las variables de entorno antes de ejecutar el script de la siguiente manera:
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
Discusión relacionada: #205
MathJax.js
Al guardar la página de un curso, habilitamos la representación MathJax
para ecuaciones matemáticas, inyectando MathJax.js
en el encabezado. El script utiliza un servicio cdn proporcionado por mathjax.org. Sin embargo, no se puede acceder a esa URL en algunos países/regiones, puede proporcionar un parámetro --mathjax-cdn
para especificar el archivo MathJax.js
al que se puede acceder en su región.
Antes de informar cualquier problema, siga los pasos a continuación:
Verifique que esté ejecutando la última versión del script
Si el problema persiste, no dude en abrir un problema en nuestro rastreador de errores; complete la plantilla de problemas con la mayor información posible .