получения содержания статей или видео с 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
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
113c58ddff5039d80dd01cfac73cd52521f4816c3fcf4412ecc400914a5d093e
|
|
| MD5 |
f205bfee186f52cca75307e956660ba3
|
|
| BLAKE2b-256 |
6ca47af93ced0f4a7de9ab3b8af7097bee1ff21a20977ba92c41611ce95d834a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8989127f38d4d35cc5247e00368e57da92250b0a799aaa75c0ee6d638e1224b8
|
|
| MD5 |
910faab4e200abe4fc8a41a24e1c509a
|
|
| BLAKE2b-256 |
2feb1e2262c1facb14ffc3ac30ef5dbf794566f7c5b1ef218376061fb3534fd6
|