пакет предоставляет функции для получения содержания статей или видео с YouTube и запуска API-сервера для суммаризации через сервис 300.ya.ru.
установка
-
из репозитория pypi:
pip install prlps_ya300 -
из репозитория github:
pip install git+https://github.com/gniloyprolaps/ya300.git
как использовать
непосредственно в коде Python:
функция get_summary служит для получения содержания статьи или видео с YouTube.
аргументы:
article_or_youtube_url(str): URL статьи или видео (поддерживаются только ссылки с YouTube).short(bool): возвратить только краткие заголовки тезисов для статей и только озаглавленные таймкоды для видео.session_id(str):Session_idиз cookies с залогиненной страницы https://300.ya.ru.
возвращает:
str | None: содержание статьи или видео в виде заголовков и тезисов или None, если возникли проблемы со ссылкой или авторизацией.
import asyncio
from prlps_ya300 import get_summary # импортируем функцию
# пример использования в асинхронном коде
async def main():
session_id = "3:173323456.5.0.1724108495806:Y12iog:x21y.1.2:1|1141634570.0.2.3:1728003508|6:10200414.986812.uaRU96USIomXSkGPPOV1-Zov404"
# получение содержания видео с YouTube:
youtube_url = "https://www.youtube.com/watch?v=mloZU0LW8aQ"
youtube_summary = await get_summary(youtube_url, short=False, session_id=session_id)
print(youtube_summary)
# получение озаглавленных таймкодов видео с YouTube:
titled_timecodes = await get_summary(youtube_url, short=True, session_id=session_id)
print(titled_timecodes)
# получение содержания статьи:
article_url = "https://azbyka.ru/otechnik/Ignatij_Brjanchaninov/simfonija-po-tvorenijam-svjatitelja-ignatija-brjanchaninova-tereshenko/3"
article_summary = await get_summary(article_url, short=False, session_id=session_id)
print(article_summary)
# получение кратких тезисов статьи:
article_url = "https://azbyka.ru/otechnik/Ignatij_Brjanchaninov/simfonija-po-tvorenijam-svjatitelja-ignatija-brjanchaninova-tereshenko/3"
article_summary = await get_summary(article_url, short=True, session_id=session_id)
print(article_summary)
asyncio.run(main()) # запуск асинхронного кода
поднятие апи
функция api_start служит для запуска API-сервера FastAPI на указанном порту.
в коде:
from prlps_ya300 import api_start # импортируем функцию
api_start() # запуск API-сервера
в консоли:
python -m prlps_ya300
или
python -c "from prlps_ya300 import api_start; api_start()"
запуск API-сервера через Docker:
# базовый образ (вместо версии с alpine можно указать просто python:3.12):
FROM python:3.12-alpine
# установка библиотеки с апи:
RUN pip install --no-cache-dir --upgrade prlps_ya300
# уровень логирования, не обязательно:
ENV YA300_LOG_LEVEL=DEBUG
# порт, не обязательно (по умолчанию 7860):
ENV YA300_API_PORT=8080
# команда запуска апи:
CMD ["python", "-m", "prlps_ya300"]
выполнение запроса к API
через curl
curl -X GET "http://127.0.0.1:8000/summarize" -H "Content-Type: application/json" -d '{"url": "https://www.youtube.com/watch?v=mloZU0LW8aQ", "short": false, "session_id": "3:173323456.5.0.1724108495806:Y12iog:x21y.1.2:1|1141634570.0.2.3:1728003508|6:10200414.986812.uaRU96USIomXSkGPPOV1-Zov404"}'
в коде Python
from httpx import AsyncClient
async def fetch_summary():
async with AsyncClient() as client:
response = await client.post(
"http://127.0.0.1:8000/summarize",
json={"url": "https://www.youtube.com/watch?v=mloZU0LW8aQ", "short": False, "session_id": "3:173323456.5.0.1724108495806:Y12iog:x21y.1.2:1|1141634570.0.2.3:1728003508|6:10200414.986812.uaRU96USIomXSkGPPOV1-Zov404"}
)
print(response.json())
import asyncio
asyncio.run(fetch_summary())
переменные окружения
session_id для 300.ya.ru
необходимо указать Session_id из cookies с залогиненной страницы https://300.ya.ru.
задается в переменной окружения YA300_SESSION_ID:
from os import environ
environ['YA300_SESSION_ID'] = '3:173323456.5.0.1724108495806:Y12iog:x21y.1.2:1|1141634570.0.2.3:1728003508|6:10200414.986812.uaRU96USIomXSkGPPOV1-Zov404'
в консоли:
export YA300_SESSION_ID='3:173323456.5.0.1724108495806:Y12iog:x21y.1.2:1|1141634570.0.2.3:1728003508|6:10200414.986812.uaRU96USIomXSkGPPOV1-Zov404'
уровень логгирования (можно не указывать, по умолчанию INFO)
задается в переменной окружения YA300_LOG_LEVEL:
from os import environ
environ['YA300_LOG_LEVEL'] = 'WARNING'
в консоли:
export YA300_LOG_LEVEL=DEBUG
порт для API-сервера
задается в переменной окружения YA300_API_PORT (можно не указывать, по умолчанию 7860):
from os import environ
environ['YA300_API_PORT'] = '8000'
в консоли:
export YA300_API_PORT=8000
Metadata
Release files for prlps-ya300 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prlps_ya300-0.0.1.tar.gz | 9.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prlps_ya300-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.8 kB
Release files / prlps_ya300-0.0.1.tar.gz
| Download URL | prlps_ya300-0.0.1.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
113c58ddff5039d80dd01cfac73cd52521f4816c3fcf4412ecc400914a5d093e
|
|
BLAKE2b-256 checksum How to use checksums |
6ca47af93ced0f4a7de9ab3b8af7097bee1ff21a20977ba92c41611ce95d834a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.7
|
Release files / prlps_ya300-0.0.1-py3-none-any.whl
| Download URL | prlps_ya300-0.0.1-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8989127f38d4d35cc5247e00368e57da92250b0a799aaa75c0ee6d638e1224b8
|
|
BLAKE2b-256 checksum How to use checksums |
2feb1e2262c1facb14ffc3ac30ef5dbf794566f7c5b1ef218376061fb3534fd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.7
|