Merge origin/master into refactor/universal-carrier

This commit is contained in:
zarazaex69
2026-05-12 21:33:31 +03:00
4 changed files with 16 additions and 17 deletions

View File

@@ -5,20 +5,20 @@ 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"}
print("[1/3] API Initialization...")
reg_req = requests.post(f"{API_BASE}/auth/api/v1/auth/user/guest-register", json={"displayName": display_name, "device": {"deviceName": "Linux", "deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP"}}, headers=headers)
reg_req.raise_for_status()
auth_data = reg_req.json()
print(" :P Guest registered")
print(json.dumps(auth_data, indent=2))
headers["Authorization"] = f"Bearer {auth_data['accessToken']}"
if not room_id:
print("\n[2/3] Room Preparation...")
room_req = requests.post(f"{API_BASE}/api-room/api/v2/room", json={"roomType": "ROOM_TYPE_ALL_ON_SCREEN", "roomPrivacy": "ROOM_PRIVACY_FREE"}, headers=headers)
@@ -27,17 +27,16 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
print(" :P Room created")
print(json.dumps(room_data, indent=2))
room_id = room_data["roomId"]
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"]
return room_id, token_data["roomToken"]
async def get_wb_info():
print("\n--- WB Stream Info ---")
try:

View File

@@ -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]:
@@ -24,7 +24,7 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
"User-Agent": "Mozilla/5.0 (Linux x86_64)",
"Content-Type": "application/json"
}
reg_req = requests.post(
f"{API_BASE}/auth/api/v1/auth/user/guest-register",
json={"displayName": display_name, "device": {"deviceName": "Linux", "deviceType": "PARTICIPANT_DEVICE_TYPE_WEB_DESKTOP"}},
@@ -32,17 +32,16 @@ def _get_room_token(room_id: str, display_name: str) -> tuple[str, str]:
)
reg_req.raise_for_status()
headers["Authorization"] = f"Bearer {reg_req.json()['accessToken']}"
if not room_id:
room_req = requests.post(f"{API_BASE}/api-room/api/v2/room", json={"roomType": "ROOM_TYPE_ALL_ON_SCREEN", "roomPrivacy": "ROOM_PRIVACY_FREE"}, headers=headers)
room_req.raise_for_status()
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 ---")

View File

@@ -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"]

View File

@@ -52,6 +52,7 @@ type createRoomResponse struct {
type tokenResponse struct {
RoomToken string `json:"roomToken"`
ServerURL string `json:"serverUrl"`
}
func registerGuest(ctx context.Context, displayName string) (string, error) {
@@ -157,7 +158,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)