Skip to main content

получения содержания статей или видео с YouTube и запуска API-сервера для суммаризации через сервис 300.ya.ru

Project description

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

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

prlps_ya300-0.0.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prlps_ya300-0.0.1-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file prlps_ya300-0.0.1.tar.gz.

File metadata

  • Download URL: prlps_ya300-0.0.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for prlps_ya300-0.0.1.tar.gz
Algorithm Hash digest
SHA256 113c58ddff5039d80dd01cfac73cd52521f4816c3fcf4412ecc400914a5d093e
MD5 f205bfee186f52cca75307e956660ba3
BLAKE2b-256 6ca47af93ced0f4a7de9ab3b8af7097bee1ff21a20977ba92c41611ce95d834a

See more details on using hashes here.

File details

Details for the file prlps_ya300-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: prlps_ya300-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for prlps_ya300-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8989127f38d4d35cc5247e00368e57da92250b0a799aaa75c0ee6d638e1224b8
MD5 910faab4e200abe4fc8a41a24e1c509a
BLAKE2b-256 2feb1e2262c1facb14ffc3ac30ef5dbf794566f7c5b1ef218376061fb3534fd6

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