Bedrud, toplantı odalarına katılıp medya içeriği yayınlayabilen Python tabanlı bot aracıları içerir. Bunlar arka plan müziği, radyo yayınları veya video içeriği paylaşımı için kullanışlıdır.
Kullanılabilir Aracılar
| Araç | Açıklama | Medya Türü |
|---|---|---|
music_agent | Bir odada ses dosyalarını çalar | Ses (PCM) |
radio_agent | İnternet radyo istasyonlarını yayınlar | Ses (FFmpeg ile PCM) |
video_stream_agent | Video içeriği paylaşır (HLS, MP4) | Video + Ses |
Aracılar Nasıl Çalışır
Tüm aracılar aynı bağlantı örüntüsünü izler:
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 --> PTMüzik Aracısı
Bir toplantı odasında ses dosyalarını (MP3, WAV vb.) çalar.
Kurulum
cd agents/music_agent
pip install -r requirements.txtBağımlılıklar: httpx, livekit, pydub
Kullanım
python agent.py "https://meet.example.com/m/room-name"Nasıl Çalışır
pydubile ses dosyalarını kod çözer- PCM karelerine dönüştürür
- Ses karelerini bir mikrofon kanalı olarak LiveKit’e yayınlar
Kurulum ve kullanım talimatları için bkz. Müzik Aracısı README.
Radyo Aracısı
Ses kod çözme için FFmpeg kullanarak internet radyo istasyonlarını bir toplantı odasına yayınlar.
Kurulum
cd agents/radio_agent
pip install -r requirements.txtBağımlılıklar: httpx, livekit
Sistem gereksinimi: FFmpeg kurulu olmalıdır (brew install ffmpeg veya apt install ffmpeg)
Kullanım
python agent.py "https://meet.example.com/m/room-name"Nasıl Çalışır
- Bir radyo yayın URL’sine bağlanır
- Yayını ham PCM’e kod çözmek için FFmpeg’den geçirir
- PCM ses karelerini LiveKit’e yayınlar
Kurulum ve kullanım talimatları için bkz. Radyo Aracısı README.
Video Yayın Aracısı
Bir URL’den (HLS/m3u8, MP4) video ve sesi bir toplantı odasına paylaşır.
Kurulum
cd agents/video_stream_agent
pip install -r requirements.txtBağımlılıklar: httpx, livekit
Sistem gereksinimi: FFmpeg kurulu olmalıdır
Kullanım
python agent.py "https://meet.example.com/m/room-name"Nasıl Çalışır
- Paralel olarak iki FFmpeg süreci çalıştırır:
- Video: YUV420p ham karelere kod çözer (1280x720 @ 30fps)
- Ses: PCM örneklerine kod çözer
- Videoyu bir ekran paylaşımı kanalı olarak yayınlar
- Sesi bir mikrofon kanalı olarak yayınlar
Kurulum ve kullanım talimatları için bkz. Video Yayın Aracısı README.
Video Özellikleri
| Ayar | Değer |
|---|---|
| Genişlik | 1280 |
| Yükseklik | 720 |
| FPS | 30 |
| Piksel Biçimi | YUV420p |
Özel Araç Yazma
Yeni bir araç oluşturmak için şu örüntüyü izleyin:
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)Ayrıca bakınız
- Müzik Aracısı README - kurulum ve kullanım
- Radyo Aracısı README - kurulum ve kullanım
- Video Yayın Aracısı README - kurulum ve kullanım