Make local backup copies for materials from sponsr.ru
Project description
sponsrdump
https://github.com/idlesign/sponsrdump
Описание
Приложение позволяет получить локальные копии материалов, на которые у вас уже имеется подписка, с сайта sponsr.ru.
Умеет скачивать тексты (статьи), аудио (подкаст), видео.
Зависимости
- Unix
- Python 3.11+
- ffmpeg (
sudo apt install ffmpeg) - uv (для установки и обновления приложения)
Установка и обновление
Производится при помощи приложения uv:
$ uv tool install sponsrdump
После этого запускать приложение можно командой
$ sponsrdump
Для обновления выполните
$ uv tool upgrade sponsrdump
Начало работы
-
Перейдите в браузере на страницу нужного проекта. Для примера используем проект "Уроки истории" - https://sponsr.ru/uzhukoffa_lessons/
-
Если вы ещё не авторизовались на сайте (не вошли), сделайте это.
-
Удостоверьтесь, что материалы данного проекта вам доступны. Если нет, оформите подписку на нужный проект.
-
Теперь нам потребуется получить значение cookie
SESSдля сайта sponsr.ru, чтобы приложение могло собрать нужные материалы. Один из вариант получения значения куки:- В браузере нажмите F12, откроется панель разработчика, открываем вкладку Сеть.
- Переходим на страницу попроще (где меньше обращений к ресурсам, чтобы не запутаться), например, https://sponsr.ru/img/new/white-logo.svg
- На вкладке Сеть выделяем строку с текстом white-logo.svg. В открывшейся панели ищем раздел Заголовки запроса.
Находим пункт Cookie и копируем из него текст, начиная с
SESS=и до первой же точки с запятой. Этот текст — пропуск на сайт для нашего собирателя.
-
Создаём текстовый файл с названием
sponsrdump_auth.txtв удобной директории (из которой мы будем запускать приложение). -
Скопированное ранее значение 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6469a0e6fadac1a6cdbb87fa80fdf68bd5f05bb589880f704b366a938f3430d
|
|
| MD5 |
d224780c0f3ccdddaeac6d06a285dcfd
|
|
| BLAKE2b-256 |
1284965abb60946565e5d1d1fbe3f9cc0d64e630caa55192939d81d8b6694c55
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e270800d7b4771bf2f233ceb367c421993048ccdc1dc0e5ffc794fd67ffc05e
|
|
| MD5 |
9db1660096292c176c0f298e6bd05559
|
|
| BLAKE2b-256 |
4886ae688f93fe6d5f2f383e164ba0e60e2eba9ab2d2eb50db9db640e07dc204
|