Bedrud التوثيق

يتضمن بدرود وكلاء بوت قائمين على Python يمكنهم الانضمام إلى غرف الاجتماعات وبث محتوى الوسائط. مفيدة للموسيقى الخلفية أو بث الراديو أو مشاركة محتوى الفيديو.

الوكلاء المتاحون

الوكيلالوصفنوع الوسائط
music_agentيشغل ملفات الصوت في غرفةصوت (PCM)
radio_agentيبث محطات الراديو عبر الإنترنتصوت (PCM عبر FFmpeg)
video_stream_agentيشارك محتوى الفيديو (HLS، MP4)فيديو + صوت

كيف يعمل الوكلاء

يتبع جميع الوكلاء نمط الاتصال نفسه:

flowchart TD
    A[1. Parse meeting URL] --> B[2. Guest login<br/>POST /api/auth/guest-login]
    B --> C[3. Join room<br/>POST /api/room/join]
    C --> D[4. Connect to LiveKit<br/>WebSocket + Token]
    D --> E[5. Publish tracks<br/>Stream audio/video frames]
flowchart LR
    subgraph Media["Media Source"]
        MS["File / URL<br/>(MP3, radio, HLS, MP4)"]
    end
    subgraph Agent["Python Agent"]
        FF[FFmpeg Decoder]
        PA[Agent Logic]
    end
    subgraph Server["Bedrud Server"]
        GL[Guest Login<br/>/api/auth/guest-login]
        JR[Join Room<br/>/api/room/join]
    end
    subgraph LK["LiveKit SFU<br/>(WebRTC)"]
        WS[WebSocket Connect]
        PT[Publish Tracks]
    end
    MS --> FF --> PA
    PA --> GL
    GL --> JR
    JR --> WS
    WS --> PT

وكيل الموسيقى

يشغل ملفات الصوت (MP3، WAV، إلخ) في غرفة اجتماع.

الإعداد

cd agents/music_agent
pip install -r requirements.txt

التبعيات: httpx، livekit، pydub

الاستخدام

python agent.py "https://meet.example.com/m/room-name"

طريقة العمل

١. فك تشفير ملفات الصوت باستخدام pydub ٢. التحويل إلى إطارات PCM ٣. نشر إطارات الصوت إلى LiveKit كمسار ميكروفون

راجع وثائق وكيل الموسيقى للإعداد والاستخدام.


وكيل الراديو

يبث محطات الراديو عبر الإنترنت إلى غرفة اجتماع باستخدام FFmpeg لفك تشفير الصوت.

الإعداد

cd agents/radio_agent
pip install -r requirements.txt

التبعيات: httpx، livekit

متطلب النظام: يجب تثبيت FFmpeg (brew install ffmpeg أو apt install ffmpeg)

الاستخدام

python agent.py "https://meet.example.com/m/room-name"

طريقة العمل

١. الاتصال بعنوان URL لبث الراديو ٢. تمرير البث عبر FFmpeg لفك التشفير إلى PCM خام ٣. نشر إطارات صوت PCM إلى LiveKit

راجع وثائق وكيل الراديو للإعداد والاستخدام.


وكيل بث الفيديو

يشارك الفيديو والصوت من رابط (HLS/m3u8، MP4) في غرفة اجتماع.

الإعداد

cd agents/video_stream_agent
pip install -r requirements.txt

التبعيات: httpx، livekit

متطلب النظام: يجب تثبيت FFmpeg

الاستخدام

python agent.py "https://meet.example.com/m/room-name"

طريقة العمل

١. يشغّل عمليتي FFmpeg بالتوازي:

  • الفيديو: فك تشفير إلى إطارات YUV420p خام (1280×720 @ 30 إطار/ثانية)
  • الصوت: فك تشفير إلى عينات PCM ٢. نشر الفيديو كمسار مشاركة شاشة ٣. نشر الصوت كمسار ميكروفون

راجع وثائق وكيل بث الفيديو للإعداد والاستخدام.

مواصفات الفيديو

الإعدادالقيمة
العرض1280
الارتفاع720
FPS30
تنسيق البكسلYUV420p

كتابة وكيل مخصص

لإنشاء وكيل جديد، اتبع هذا النمط:

import httpx
from livekit import rtc
 
# 1. Parse the meeting URL to extract room name
room_name = parse_url(meeting_url)
 
# 2. Guest login
client = httpx.Client(base_url=server_url)
resp = client.post("/api/auth/guest-login", json={"name": "Bot Name"})
token = resp.json()["token"]
 
# 3. Join room
client.headers["Authorization"] = f"Bearer {token}"
resp = client.post("/api/room/join", json={"roomName": room_name})
lk_token = resp.json()["token"]
 
# 4. Connect to LiveKit
room = rtc.Room()
await room.connect(livekit_url, lk_token)
 
# 5. Publish tracks
source = rtc.AudioSource(sample_rate=48000, num_channels=1)
track = rtc.LocalAudioTrack.create_audio_track("audio", source)
await room.local_participant.publish_track(track)
 
# 6. Stream frames
while has_data:
    frame = get_next_frame()
    await source.capture_frame(frame)

انظر أيضًا