コンテンツにスキップ

unified-live

YouTube・Twitch・TwitCasting を 1 つの API で扱える TypeScript SDK

統一API

YouTube、Twitch、TwitCasting を1つのインターフェースで。URLを渡すだけでプラットフォームを自動検出し、ContentChannelBroadcastArchive 型に正規化します。

プラグインアーキテクチャ

必要なプラットフォームだけインストール。各プラットフォームは独立したパッケージ(@unified-live/youtube@unified-live/twitch@unified-live/twitcasting)で、認証・レート制限・URL解決を個別に管理します。

OpenTelemetry互換

OTel SDKが未設定ならオーバーヘッドゼロのビルトイントレーシング。すべてのAPIコールでプラットフォーム、HTTPメソッド、レート制限状態、クォータ消費、エラー詳細のスパンを出力します。

自動レート制限

トークンバケット(Twitch、TwitCasting)とクォータベース(YouTube)のレート制限を透過的に処理。指数バックオフでリトライし、クォータ消費をローカルで追跡します。

依存ゼロ

コアパッケージはランタイム依存ゼロ。素のTypeScript型のみ — スキーマライブラリなし、余計な肥大化なし。あらゆる環境で最小バンドルサイズ。

型安全

判別共用体 ContentBroadcastScheduledBroadcastArchiveClip)。コンパニオンオブジェクトの型ガード(Content.isBroadcast()Content.isArchive() など)で安全な型絞り込み。

ランタイム非依存

Node.js 18+、Deno、Bun、Cloudflare Workers で動作。ネイティブ fetch を持つすべてのランタイムに対応。コアにNode.js固有の依存はありません。

プラットフォーム公式APIunified-live が処理すること
YouTubeData API v3日次クォータ追跡(10,000ユニット)、APIキー注入、エンドポイント毎のコスト管理
TwitchHelix APIOAuth2 Client Credentials 自動リフレッシュ、トークンバケット(800リクエスト/60秒)
TwitCastingAPI v2Basic Auth エンコード、トークンバケット(60リクエスト/60秒)

各プラットフォームAPIの課題の詳細は概要をご覧ください。