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.3.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.3-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sponsrdump-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 c94ce52b1b6e6b2922853eb0bc73369db9262521c6e51154a708bc97bf22a4fe
MD5 f55cee9bcf5dad4f4e22d1ea9d440de0
BLAKE2b-256 08983ed61122cfe949eed5a2349e54501f926a2964083a7cedb8419c2da7dcdc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for sponsrdump-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dedd26b3127bc6442e90e5a076c3a99b0f872a87edb1f6fbf2dc2de754f79e9b
MD5 c4032b88635c553c2268cc6b3036b843
BLAKE2b-256 ec6ab3ac695597c0bf0f1a838c256cc72621bf0bc90e77c0789224ba0bf5f693

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