Skip to main content

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 tests

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

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

Metadata

Release files for sponsrdump 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sponsrdump 0.3.0
File Size Uploaded
sponsrdump-0.3.0.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sponsrdump 0.3.0
File Interpreter ABI Platform
sponsrdump-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.3 kB

Release files / sponsrdump-0.3.0.tar.gz

Download URL sponsrdump-0.3.0.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2fd0a6dae7dadac4f13294b0a67965bd30ab638853be81a7ce152c4a1d90de67
BLAKE2b-256 checksum
How to use checksums
9b7a2d927b27c75dd9cac0dd449af3e250bcb044744c6888642d7a94d150585e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / sponsrdump-0.3.0-py3-none-any.whl

Download URL sponsrdump-0.3.0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
170c7fb6993fb91f51b730e8503c38559decac46ee4eae43245f0c5cd4303bdf
BLAKE2b-256 checksum
How to use checksums
73e0aa03d771f1f6567b2a9a040c83667afb7d9229073aca0710b9bf2e484bb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page