A stream.place VOD client inspired by icarly.com
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596#!/bin/bash
# Test script for stream.place VOD playback# Usage: ./scripts/test-playback-cli.sh
set -e
BASE_URL="https://vod-beta.stream.place/xrpc"VIDEO_URI="at://did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.video/3miah6keewv2n"
echo "=========================================="echo "stream.place VOD Playback Test"echo "=========================================="echo ""
echo "Testing: Video Playlist (Master)"echo "URL: ${BASE_URL}/place.stream.playback.getVideoPlaylist?uri=..."echo ""
PLAYLIST=$(curl -s "${BASE_URL}/place.stream.playback.getVideoPlaylist?uri=$(echo "$VIDEO_URI" | jq -sRr @uri)")
if echo "$PLAYLIST" | grep -q "#EXTM3U"; then echo "✓ Valid HLS playlist"else echo "✗ Invalid playlist" exit 1fi
if echo "$PLAYLIST" | grep -q "#EXT-X-STREAM-INF"; then echo "✓ Contains stream variants"else echo "✗ No stream variants found"fi
TRACK_URL=$(echo "$PLAYLIST" | grep -A1 "#EXT-X-STREAM-INF" | tail -1)echo ""echo "Track URL (relative): $TRACK_URL"
if [[ "$TRACK_URL" == place.stream.playback.* ]]; then FULL_TRACK_URL="${BASE_URL}/${TRACK_URL}" echo "Full Track URL: $FULL_TRACK_URL"else FULL_TRACK_URL="${BASE_URL}/${TRACK_URL}" echo "Track URL (absolute): $FULL_TRACK_URL"fi
echo ""echo "Testing: Video Track Playlist (track=1)"echo ""
TRACK1=$(curl -s "$FULL_TRACK_URL")
if echo "$TRACK1" | grep -q "#EXT-X-PLAYLIST-TYPE:VOD"; then echo "✓ Valid VOD playlist"else echo "✗ Not a VOD playlist"fi
if echo "$TRACK1" | grep -q "#EXTINF"; then SEGMENTS=$(echo "$TRACK1" | grep -c "#EXTINF") echo "✓ Contains $SEGMENTS segments"else echo "✗ No segments found"fi
BLOB_URL=$(echo "$TRACK1" | grep "place.stream.playback.getVideoBlob" | head -1)echo ""echo "First segment URL: $BLOB_URL"
if [[ -n "$BLOB_URL" ]]; then FULL_BLOB_URL="${BASE_URL}/${BLOB_URL}" echo "Full blob URL: $FULL_BLOB_URL"
echo "" echo "Testing: Video Blob (HEAD request)" RESPONSE=$(curl -s -I "$FULL_BLOB_URL")
if echo "$RESPONSE" | grep -q "HTTP/.* 200"; then echo "✓ Blob accessible"
CONTENT_TYPE=$(echo "$RESPONSE" | grep -i "content-type:" | tr -d '\r') echo " Content-Type: $CONTENT_TYPE"
CONTENT_LENGTH=$(echo "$RESPONSE" | grep -i "content-length:" | tr -d '\r') echo " Content-Length: $CONTENT_LENGTH" else echo "✗ Blob not accessible" echo "$RESPONSE" fifi
echo ""echo "=========================================="echo "Test complete!"echo "=========================================="