mirror of
https://github.com/openlibrecommunity/olcrtc.git
synced 2026-05-26 07:08:11 +00:00
fix(provider/wbstream): update API endpoints and WebSocket URL
- Switched getToken endpoint to /api-room-manager/v2/room/%s/connection-details - Updated WebSocket URL to wss://rtc-el-01.wb.ru - Updated Python PoC scripts to match new endpoints
This commit is contained in:
@@ -5,7 +5,7 @@ import requests
|
||||
from livekit import rtc
|
||||
|
||||
API_BASE = "https://stream.wb.ru"
|
||||
WS_URL = "wss://wbstream01-el.wb.ru:7880"
|
||||
WS_URL = "wss://rtc-el-01.wb.ru"
|
||||
|
||||
def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
headers = {"User-Agent": "Mozilla/5.0 (Linux x86_64)", "Content-Type": "application/json"}
|
||||
@@ -30,14 +30,13 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
|
||||
print(f"\n[3/3] Fetching LiveKit token...")
|
||||
requests.post(f"{API_BASE}/api-room/api/v1/room/{room_id}/join", json={}, headers=headers).raise_for_status()
|
||||
tok_req = requests.get(f"{API_BASE}/api-room-manager/api/v1/room/{room_id}/token", params={"deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP", "displayName": display_name}, headers=headers)
|
||||
tok_req = requests.get(f"{API_BASE}/api-room-manager/v2/room/{room_id}/connection-details", params={"deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP", "displayName": display_name}, headers=headers)
|
||||
tok_req.raise_for_status()
|
||||
token_data = tok_req.json()
|
||||
print(" :P Token received")
|
||||
print(json.dumps(token_data, indent=2))
|
||||
|
||||
return room_id, token_data["roomToken"]
|
||||
|
||||
async def get_wb_info():
|
||||
print("\n--- WB Stream Info ---")
|
||||
try:
|
||||
|
||||
@@ -15,7 +15,7 @@ except ImportError:
|
||||
logging.getLogger("livekit").setLevel(logging.WARNING)
|
||||
|
||||
API_BASE = "https://stream.wb.ru"
|
||||
WS_URL = "wss://wbstream01-el.wb.ru:7880"
|
||||
WS_URL = "wss://rtc-el-01.wb.ru"
|
||||
TEST_MESSAGES = ["Hello WB Stream!", "Hello world", "X" * 100, "Final test"]
|
||||
|
||||
def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
@@ -39,10 +39,9 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
room_id = room_req.json()["roomId"]
|
||||
|
||||
requests.post(f"{API_BASE}/api-room/api/v1/room/{room_id}/join", json={}, headers=headers).raise_for_status()
|
||||
tok_req = requests.get(f"{API_BASE}/api-room-manager/api/v1/room/{room_id}/token", params={"deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP", "displayName": display_name}, headers=headers)
|
||||
tok_req = requests.get(f"{API_BASE}/api-room-manager/v2/room/{room_id}/connection-details", params={"deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP", "displayName": display_name}, headers=headers)
|
||||
tok_req.raise_for_status()
|
||||
return room_id, tok_req.json()["roomToken"]
|
||||
|
||||
async def run_poc() -> dict:
|
||||
"""Runs the complete PoC flow."""
|
||||
print("\n--- WB Stream PoC ---")
|
||||
|
||||
@@ -41,7 +41,7 @@ def _decode(arr: np.ndarray) -> str | None:
|
||||
except Exception:
|
||||
pass
|
||||
return None
|
||||
|
||||
WS_URL = "wss://rtc-el-01.wb.ru"
|
||||
|
||||
def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
headers = {"User-Agent": "Mozilla/5.0 (Linux x86_64)", "Content-Type": "application/json"}
|
||||
@@ -56,7 +56,7 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
|
||||
r.raise_for_status()
|
||||
room_id = r.json()["roomId"]
|
||||
requests.post(f"{API_BASE}/api-room/api/v1/room/{room_id}/join", json={}, headers=headers).raise_for_status()
|
||||
tok = requests.get(f"{API_BASE}/api-room-manager/api/v1/room/{room_id}/token",
|
||||
tok = requests.get(f"{API_BASE}/api-room-manager/v2/room/{room_id}/connection-details",
|
||||
params={"deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP", "displayName": display_name}, headers=headers)
|
||||
tok.raise_for_status()
|
||||
return room_id, tok.json()["roomToken"]
|
||||
|
||||
@@ -46,6 +46,7 @@ type createRoomResponse struct {
|
||||
|
||||
type tokenResponse struct {
|
||||
RoomToken string `json:"roomToken"`
|
||||
ServerURL string `json:"serverUrl"`
|
||||
}
|
||||
|
||||
func registerGuest(ctx context.Context, displayName string) (string, error) {
|
||||
@@ -164,7 +165,7 @@ func joinRoom(ctx context.Context, accessToken, roomID string) error {
|
||||
}
|
||||
|
||||
func getToken(ctx context.Context, accessToken, roomID, displayName string) (string, error) {
|
||||
u := fmt.Sprintf("%s/api-room-manager/api/v1/room/%s/token", apiBase, roomID)
|
||||
u := fmt.Sprintf("%s/api-room-manager/v2/room/%s/connection-details", apiBase, roomID)
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodGet, u, nil)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("create request: %w", err)
|
||||
|
||||
@@ -37,7 +37,7 @@ func TestWBStreamAPIHappyPath(t *testing.T) {
|
||||
_ = json.NewEncoder(w).Encode(createRoomResponse{RoomID: "room"}) //nolint:goconst,lll // test literal, repetition is intentional
|
||||
case "/api-room/api/v1/room/room/join":
|
||||
w.WriteHeader(http.StatusOK)
|
||||
case "/api-room-manager/api/v1/room/room/token":
|
||||
case "/api-room-manager/v2/room/room/connection-details":
|
||||
if r.URL.Query().Get("displayName") != "peer" {
|
||||
t.Fatalf("displayName query = %q", r.URL.Query().Get("displayName"))
|
||||
}
|
||||
@@ -103,7 +103,7 @@ func TestWBStreamGetRoomToken(t *testing.T) {
|
||||
_ = json.NewEncoder(w).Encode(createRoomResponse{RoomID: "created"})
|
||||
case "/api-room/api/v1/room/created/join":
|
||||
w.WriteHeader(http.StatusOK)
|
||||
case "/api-room-manager/api/v1/room/created/token":
|
||||
case "/api-room-manager/v2/room/created/connection-details":
|
||||
_ = json.NewEncoder(w).Encode(tokenResponse{RoomToken: "token"})
|
||||
default:
|
||||
http.NotFound(w, r)
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
wsURL = "wss://wbstream01-el.wb.ru:7880"
|
||||
wsURL = "wss://rtc-el-01.wb.ru"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
Reference in New Issue
Block a user