OkCdn Python Client SDK
Легковесный, быстрый и асинхронный клиент для взаимодействия с сервером OKCdn.
✨ Особенности
- Zero-Disk RAM Streaming: мгновенная перекачка MPEG-DASH (.mpd), HLS (.m3u8), Direct MP4 в OK.ru.
- Мгновенное обновление ссылок: актуализация протухших CDN-ссылок (
<0.5s). - Пакетная параллельная загрузка: отправка списков видео с контролируемым
concurrency. - Автоматический Retry: устойчивость к временным сетевым сбоям с экспоненциальной задержкой.
- Поддержка мультиаккаунтов: сессии кэшируются на сервере с 30-минутным умным авто-отключением сокетов.
📦 Установка
pip install okcdn
🚀 Быстрый старт
import asyncio
from okcdn import OkCdn
async def main():
# Инициализация клиента (можно передать параметры или задать переменные окружения)
async with OkCdn(
server_url="https://your-okcdn-server.koyeb.app",
auth_token="YOUR_OK_AUTHCODE_HERE",
default_chat_id=123456789
) as cdn:
# 1. Отправка одиночного видео (HLS / DASH / MP4)
video = await cdn.send_video(
link="https://example.com/stream.m3u8",
caption="Мой видеострим",
title="video_01.mp4"
)
print("Прямой MP4:", video["mp4"])
print("HLS ссылка:", video["hls"])
print("Video ID:", video["video_id"])
# 2. Мгновенное обновление ссылок
fresh = await cdn.refresh_links(video_id=video["video_id"])
print("Обновленная ссылка:", fresh["mp4"])
print("Истекает через:", fresh["expires_in_sec"], "сек")
# 3. Загрузка локального файла
uploaded = await cdn.upload_file(
file_path="local_video.mp4",
caption="Прямая загрузка"
)
print("Загружено:", uploaded["direct"])
# 4. Пакетная параллельная отправка
batch = await cdn.send_videos(
links=[
"https://site.com/video1.mp4",
"https://site.com/video2.mp4"
],
concurrency=2
)
for url, data in batch.items():
print(f"{url} -> {data.get('mp4')}")
if __name__ == "__main__":
asyncio.run(main())
⚙️ Переменные окружения
Вы можете задать переменные окружения, чтобы не указывать их в коде:
OKCDN_SERVER_URL— адрес запущенного сервера (по умолчаниюhttp://localhost:8000)ACCOUNT_TOKENилиOKCDN_AUTH_TOKEN— токен авторизации OK.ru (AUTHCODE)CHAT_IDилиOKCDN_CHAT_ID— ID чата по умолчанию
Metadata
Release files for okcdn 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| okcdn-4.0.0.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| okcdn-4.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.6 kB
Release files / okcdn-4.0.0.tar.gz
| Download URL | okcdn-4.0.0.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
72040f59613272715b468ed7b8c617bc270d20c6f1eb0d6a5c3cc51536de4b2d
|
|
BLAKE2b-256 checksum How to use checksums |
a9cd123126dee2f7832318b83c854ee067bedd1ccd9c66e51344920eb1335963
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / okcdn-4.0.0-py3-none-any.whl
| Download URL | okcdn-4.0.0-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c86536a8b36796d5c0d6770c760253cc849ee188831bccceedce97d8deee718a
|
|
BLAKE2b-256 checksum How to use checksums |
86f086143a03463b6cf8e7466e5dea81a52c2c0c3ab891f675162d11e0e95464
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|