Skip to main content

Make local backup copies for materials from sponsr.ru

Project description

sponsrdump

https://github.com/idlesign/sponsrdump

PyPI - Version License Coverage

Описание

Приложение позволяет получить локальные копии материалов, на которые у вас уже имеется подписка, с сайта sponsr.ru.

Умеет скачивать тексты (статьи), аудио (подкаст), видео.

Зависимости

  • Unix
  • Python 3.11+
  • ffmpeg (sudo apt install ffmpeg)
  • uv (для установки и обновления приложения)

Установка и обновление

Производится при помощи приложения uv:

$ uv tool install sponsrdump

После этого запускать приложение можно командой

$ sponsrdump

Для обновления выполните

$ uv tool upgrade sponsrdump

Начало работы

  1. Перейдите в браузере на страницу нужного проекта. Для примера используем проект "Уроки истории" - https://sponsr.ru/uzhukoffa_lessons/

  2. Если вы ещё не авторизовались на сайте (не вошли), сделайте это.

  3. Удостоверьтесь, что материалы данного проекта вам доступны. Если нет, оформите подписку на нужный проект.

  4. Теперь нам потребуется получить значение cookie SESS для сайта sponsr.ru, чтобы приложение могло собрать нужные материалы. Один из вариант получения значения куки:

    1. В браузере нажмите F12, откроется панель разработчика, открываем вкладку Сеть.
    2. Переходим на страницу попроще (где меньше обращений к ресурсам, чтобы не запутаться), например, https://sponsr.ru/img/new/white-logo.svg
    3. На вкладке Сеть выделяем строку с текстом white-logo.svg. В открывшейся панели ищем раздел Заголовки запроса. Находим пункт Cookie и копируем из него текст, начиная с SESS= и до первой же точки с запятой. Этот текст — пропуск на сайт для нашего собирателя.
  5. Создаём текстовый файл с названием sponsrdump_auth.txt в удобной директории (из которой мы будем запускать приложение).

  6. Скопированное ранее значение cookie SESS помещаем в файл из п.5, сохраняем.

В ходе сбора материалов в директории, из которой запущено приложение, будет создан файл sponsrdump.json, с информацией о том, что уже было успешно собрано. Таким образом, при следующем запуске приложения будут собраны только новые материалы.

Примеры запуска

Из командной строки

В примере мы используем фильтр, который инструктирует собирателя на поиск тех статей, в заголовке которых есть слово Урок .

Мы будем собирать все файлы (тексты, аудио, видео), начиная от старых к новым, и складывать их в поддиректорию here/ текущей директории.

Для видео будем предпочитать разрешение 640x360. Сделаем видео с текстом статьи — --text-to-video.

$ sponsrdump "https://sponsr.ru/uzhukoffa_lessons/" --title "Урок " --to here/ --prefer-video 640x360 --text-to-video

Из кода

В примере ниже использованы все те же настройки, что и в примере запуска из командной строки (выше).

dumper = SponsrDumper('https://sponsr.ru/uzhukoffa_lessons/')
dumper.search(func_filter=lambda post_info: 'Урок ' in post_info['post_title'])
dumper.dump('here/', prefer_video=VideoPreference(frame='640x360'), text_to_video=True)

В контейнере

Будет полезно для тех, кто хочет выгружать видео сразу на свой домашний NAS.

Требует наличия в системе Docker. Если у вас есть make:

$ make run
$ uvx sponsrdump "https://sponsr.ru/uzhukoffa_lessons/" --title "Урок 309" --prefer-video 640x360

Можно и без make и shell, в данном примере монтируем auth и json файлы и каталог dump, чтобы сохранять данные вне контейнера:

$ docker build -t sponsrdump .
$ docker run -it -v $(pwd)/sponsrdump_auth.txt:/sponsrdump_auth.txt -v $(pwd)/sponsrdump.json:/sponsrdump.json -v $(pwd)/dump:/dump sponsrdump uvx sponsrdump "https://sponsr.ru/uzhukoffa_lessons/" --title "Урок 309" --prefer-video 640x360

Для разработки

При разработке используется makeapp. Ставим:

$ uv tool install makeapp

После клонирования репозитория sponsrdump, в его директории выполняем:

# ставим утилиты
$ ma tools

# инициализируем виртуальное окружение
$ ma up --tool

# теперь в окружении доступны зависимости и команда sponsrdump

Проверь стиль перед отправкой кода на обзор:

# проверяем стиль
$ ma style

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sponsrdump-0.1.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sponsrdump-0.1.2-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file sponsrdump-0.1.2.tar.gz.

File metadata

  • Download URL: sponsrdump-0.1.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for sponsrdump-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d6469a0e6fadac1a6cdbb87fa80fdf68bd5f05bb589880f704b366a938f3430d
MD5 d224780c0f3ccdddaeac6d06a285dcfd
BLAKE2b-256 1284965abb60946565e5d1d1fbe3f9cc0d64e630caa55192939d81d8b6694c55

See more details on using hashes here.

File details

Details for the file sponsrdump-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: sponsrdump-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for sponsrdump-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0e270800d7b4771bf2f233ceb367c421993048ccdc1dc0e5ffc794fd67ffc05e
MD5 9db1660096292c176c0f298e6bd05559
BLAKE2b-256 4886ae688f93fe6d5f2f383e164ba0e60e2eba9ab2d2eb50db9db640e07dc204

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page