Это форк Coursera-dl, который работает с современным Python и современным Coursera.org, с добавленными функциями и исправлениями.
Загрузчик Курсера
Введение
Функции
Отказ от ответственности
Инструкции по установке
Альтернативный метод установки для систем Unix
АрчЛинукс
Установка зависимостей самостоятельно
Рекомендуемый метод установки для всех операционных систем
Альтернативные способы установки отсутствующих зависимостей
Докер
Окна
Создайте учетную запись на Coursera
Запуск сценария
Возобновление загрузок
Поиск неисправностей
Проблемы Китая
На этой странице найдено 0 разделов и 0 лекций.
Скачать таймауты
Windows: поддержка прокси
Windows: не удалось создать процесс
SSLError: [Errno 1] _ssl.c:504: ошибка: 14094410: процедуры SSL: SSL3_READ_BYTES: сбой подтверждения оповещения sslv3
Альтернативный CDN для MathJax.js
Сообщение о проблемах
Сообщение о проблеме/сообщение об ошибке
Обратная связь
Контакт
Этот скрипт упрощает пакетную загрузку лекционных ресурсов (например, видео, презентаций и т. д.) для занятий Coursera. Учитывая одно или несколько названий классов, он получает названия недель и классов со страницы лекций , а затем загружает соответствующие материалы в файлы и каталоги с соответствующими именами.
Первоначально эта работа частично была вдохновлена [youtube-dl][3], с помощью которого я скачал множество других хороших видеороликов, например, из Академии Хана.
Поддержка всех видов курсов (например, «Старая платформа»/курсы по времени, а также «Новая платформа»/курсы по запросу).
Намеренно подробные имена, чтобы они правильно отображались и сортировались на большинстве интерфейсов (например, VLC или MX Video на устройствах Android).
Фильтры разделов (недель) и названий лекций на основе регулярных выражений для загрузки только определенных ресурсов.
Фильтр расширений формата файлов для получения нужных типов ресурсов.
Аргументы по умолчанию загружаются из файла coursera-dl.conf
.
Основные функции протестированы на Linux, Mac и Windows.
cs-dlp
предназначен для использования только для ваших материалов, которые Coursera предоставляет вам для скачивания.
Мы не поощряем любое использование, нарушающее Условия использования. Соответствующий отрывок:
«[...] Coursera предоставляет вам личную, неисключительную, непередаваемую лицензию на доступ к Сайтам и их использование. Вы можете загружать материалы с Сайтов только для личного некоммерческого использования. Вы не имеете права копировать иным образом , воспроизводить, ретранслировать, распространять, публиковать, использовать в коммерческих целях или иным образом передавать любые материалы, а также не можете изменять или создавать производные работы на основе материала».
cs-dlp
требует Python 3 и учетную запись Coursera, зарегистрированную в интересующем классе.
Примечание. cs-dlp
несовместим с Python 2.
В любой операционной системе убедитесь, что местоположение исполняемого файла Python добавлено в переменную среды PATH
, и после установки зависимостей (см. следующий раздел) для базового использования вам нужно будет вызвать сценарий из основного каталога операционной системы. проект и добавьте к нему слово python
. Вы также можете воспользоваться более расширенными возможностями программы, просмотрев раздел «Запуск сценария» данного документа.
Примечание. Вы уже должны (вручную) согласиться с соблюдением Кодекса чести конкретных курсов, которые хотите использовать с cs-dlp
.
Из командной строки (желательно из виртуальной среды) просто введите команду:
git clone https://github.com/raffaem/cs-dlp cd cs-dlp python -m pip install --user .
Примечание 1. Мы настоятельно рекомендуем вам не устанавливать пакет глобально на вашем компьютере (т. е. с правами root/администратора), поскольку установленные модули могут конфликтовать с другими приложениями Python, установленными в вашей системе. Предпочитайте использовать опцию --user
для pip install
.
cs-dlp
в настоящее время не имеет пакета AUR. Помощь приветствуется!
Если у вас его еще нет, создайте учетную запись [Coursera][1] и запишитесь на курс. Список классов см. на https://www.coursera.org/courses.
Для аутентификации на Coursera вам понадобится файл cookie CAUTH.
В настоящее время существует два поддерживаемых способа сделать это: вы можете настроить cs-dlp
автоматически из вашего браузера или передать его вручную.
Автоматический способ
chrome
для Google Chrome
chromium
opera
opera_gx
brave
edge
vivaldi
firefox
librewolf
safari
Откройте свой любимый браузер и войдите в Coursera.
Вызовите cs-dlp
с опцией --cauth-auto browser
.
Допустимые параметры для browser
:
Ручной способ
Передайте файл cookie CAUTH в параметр --cauth
.
Обратитесь к cs-dlp --help
для получения полной и актуальной информации о параметрах времени выполнения, поддерживаемых этой утилитой.
Запустите скрипт для загрузки материалов, указав файл cookie Coursera CAUTH, имена классов, а также любые дополнительные параметры:
cs-dlp --cauth-auto chrome modelthinking-004
Вот несколько примеров вызова cs-dlp
из командной строки:
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`
Примечание. Если ваша команда ls
имеет псевдоним для отображения цветного вывода, у вас могут возникнуть проблемы. Обязательно экранируйте команду ls
(используйте ls
), чтобы в сценарий не отправлялись специальные символы.
Обратите внимание, что мы поддерживаем курсы Новой платформы («по требованию»).
По умолчанию видео загружаются с разрешением 540p. Для курсов по запросу флаг --video-resolution
принимает значения 360p, 540p и 720p.
Чтобы загрузить только файлы субтитров .txt
и/или .srt
вместо видео, используйте --ignore-formats mp4 --subtitle-language en
или любой другой формат, в котором закодированы видео, и желаемые языки для субтитров.
Если вы хотите сохранить предпочтительные параметры, создайте файл с именем coursera-dl.conf
, в котором должен выполняться сценарий, в следующем формате:
--subtitle-language en,zh-CN|zh-TW --download-quizzes #--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js # more other parameters
Параметры, указанные в файле, будут переопределены, если они снова будут указаны в командной строке.
Примечание. В coursera-dl.conf
все параметры не следует заключать в кавычки.
В режиме по умолчанию, когда вы прерываете процесс загрузки нажатием CTRL + C , частично загруженные файлы будут удалены с вашего диска и вам придется начинать процесс загрузки с начала. Если ваша загрузка была прервана по причине, отличной от KeyboardInterrupt ( CTRL + C ), например внезапного сбоя системы, частично загруженные файлы останутся на вашем диске, и при следующем запуске процесса эти файлы будут удалены из списка загрузок!, поэтому это ваша задача — удалить их вручную перед следующим запуском. По этой причине мы добавили опцию --resume
, которая продолжает загрузку с того места, где она была остановлена:
cs-dlp --cauth-auto chrome --resume sdn1-001
Эту опцию также можно использовать с внешними загрузчиками:
cs-dlp --cauth-auto chrome --wget --resume sdn1-001
Примечание 1. Некоторые внешние загрузчики используют собственную встроенную функцию возобновления, которая может быть несовместима с другими, поэтому используйте их на свой страх и риск.
Примечание 2 : Помните, что в режиме возобновления прерванные файлы НЕ БУДУТ удаляться с вашего диска.
Если у вас возникли проблемы при загрузке материалов занятий, попробуйте посмотреть, решит ли вашу проблему одно из следующих действий:
Убедитесь, что имя используемого вами класса соответствует имени ресурса, используемому в URL-адресе этого класса: https://www.coursera.org/learn/
Вы пытались очистить кэшированные файлы cookie/учетные данные с помощью опции --clear-cache
?
Обратите внимание, что многие курсы (возможно, большинство?) могут удалять материалы через некоторое время после завершения курса, в то время как другие курсы могут сохранять материалы до следующего сеанса/предложения того же курса (во избежание проблем с академической нечестностью, видимо).
Короче говоря, нет гарантии, что вы сможете скачать после завершения курса, и, к сожалению, мы не можем вам помочь.
Можно экспортировать файл cookie в стиле Netscape с расширением браузера ([1][9], [2][10]) и использовать его с опцией -c
. Это удобно, когда аутентификация по паролю не работает (процесс аутентификации время от времени меняется).
Для курсов, которые еще не начались, но уже прошли предыдущую итерацию, иногда доступен предварительный просмотр, содержащий все занятия из последнего курса. Эти файлы можно загрузить, передав параметр --preview
.
Если вы получаете сообщение об ошибке типа « Could not find class:
, то:
Проверьте правильность названия курса. Названия текущих классов в Coursera состоят из короткого названия курса, например class
, и текущей версии курса (числа). Например, для класса с именем class
вам придется использовать class-001
, class-002
и т. д.
Во-вторых, убедитесь, что вы зачислены на курс. Вы не сможете получить доступ к материалам курса, если вы не зачислены официально и не дали согласие на участие в почетном курсе через веб-сайт .
Если вы из Китая и у вас возникли проблемы с загрузкой видео, может помочь добавление «52.84.167.78 d3c33hcgiwev3.cloudfront.net» в файл хостов (/etc/hosts) и обновление DNS с помощью «ipconfig/flushdns» (см. https: //github.com/googlehosts/hosts для получения дополнительной информации).
Прежде всего, убедитесь, что вы зарегистрированы на курс, который хотите загрузить.
На многие старые курсы уже закрыт набор, поэтому часто это не вариант. В этом случае попробуйте загрузить с опцией --preview
. Некоторые курсы позволяют загружать лекционные материалы без регистрации, но это встречается нечасто и не гарантируется, что будет работать для каждого курса.
Наконец, вы можете скачать видео, если у вас есть хотя бы индексный файл, в котором перечислены все материалы курса. Возможно, ваш зачисленный друг сможет сохранить для вас эту страницу курса. В этом случае используйте опцию --process_local_page
.
В качестве альтернативы вы можете попробовать различные расширения браузера, предназначенные для решения этой проблемы.
Если ничего из вышеперечисленного вам не помогло, мы ничего не можем сделать.
cs-dlp поддерживает внешние загрузчики, но учтите, что они используются только для загрузки материалов после анализа учебной программы, например видео, PDF-файлов, некоторых раздаточных материалов и дополнительных файлов (программа всегда загружается с помощью внутреннего загрузчика). Если у вас возникли проблемы с загрузкой таких материалов, вы можете начать использовать внешний загрузчик и настроить значения его тайм-аута. Например, вы можете использовать загрузчик aria2c, передав опцию --aria
:
cs-dlp --cauth-auto chrome --path . --aria2
И поместите это в файл конфигурации aria2c ~/.aria2/aria2.conf
чтобы сократить время ожидания:
connect-timeout=2 timeout=2 bt-stop-timeout=1
Конфигурация тайм-аута для внутреннего загрузчика не поддерживается.
Если вы используете Windows за прокси-сервером, настройте переменные среды перед запуском сценария следующим образом:
set HTTP_PROXY=http://host:port set HTTPS_PROXY=http://host:port
Связанное обсуждение: #205
MathJax.js
При сохранении страницы курса мы включили рендеринг MathJax
для математических уравнений, вставив MathJax.js
в заголовок. Сценарий использует службу cdn, предоставляемую mathjax.org. Однако этот URL-адрес недоступен в некоторых странах/регионах. Вы можете указать параметр --mathjax-cdn
, чтобы указать файл MathJax.js
, доступный в вашем регионе.
Прежде чем сообщить о какой-либо проблеме, выполните следующие действия:
Убедитесь, что вы используете последнюю версию скрипта.
Если проблема не устранена, смело открывайте ее в нашем трекере ошибок. Пожалуйста, заполните шаблон проблемы как можно более подробной информацией .