Skip to main content

пакет предоставляет функции для получения содержания статей или видео с 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)

Source distribution for prlps-ya300 0.0.1
File Size Uploaded
prlps_ya300-0.0.1.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for prlps-ya300 0.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1 This release

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