A stream.place VOD client inspired by icarly.com
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 95 lines 2.5 kB view raw
1#!/bin/bash 2 3# Test script for stream.place VOD playback 4# Usage: ./scripts/test-playback-cli.sh 5 6set -e 7 8BASE_URL="https://vod-beta.stream.place/xrpc" 9VIDEO_URI="at://did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.video/3miah6keewv2n" 10 11echo "==========================================" 12echo "stream.place VOD Playback Test" 13echo "==========================================" 14echo "" 15 16echo "Testing: Video Playlist (Master)" 17echo "URL: ${BASE_URL}/place.stream.playback.getVideoPlaylist?uri=..." 18echo "" 19 20PLAYLIST=$(curl -s "${BASE_URL}/place.stream.playback.getVideoPlaylist?uri=$(echo "$VIDEO_URI" | jq -sRr @uri)") 21 22if echo "$PLAYLIST" | grep -q "#EXTM3U"; then 23 echo "✓ Valid HLS playlist" 24else 25 echo "✗ Invalid playlist" 26 exit 1 27fi 28 29if echo "$PLAYLIST" | grep -q "#EXT-X-STREAM-INF"; then 30 echo "✓ Contains stream variants" 31else 32 echo "✗ No stream variants found" 33fi 34 35TRACK_URL=$(echo "$PLAYLIST" | grep -A1 "#EXT-X-STREAM-INF" | tail -1) 36echo "" 37echo "Track URL (relative): $TRACK_URL" 38 39if [[ "$TRACK_URL" == place.stream.playback.* ]]; then 40 FULL_TRACK_URL="${BASE_URL}/${TRACK_URL}" 41 echo "Full Track URL: $FULL_TRACK_URL" 42else 43 FULL_TRACK_URL="${BASE_URL}/${TRACK_URL}" 44 echo "Track URL (absolute): $FULL_TRACK_URL" 45fi 46 47echo "" 48echo "Testing: Video Track Playlist (track=1)" 49echo "" 50 51TRACK1=$(curl -s "$FULL_TRACK_URL") 52 53if echo "$TRACK1" | grep -q "#EXT-X-PLAYLIST-TYPE:VOD"; then 54 echo "✓ Valid VOD playlist" 55else 56 echo "✗ Not a VOD playlist" 57fi 58 59if echo "$TRACK1" | grep -q "#EXTINF"; then 60 SEGMENTS=$(echo "$TRACK1" | grep -c "#EXTINF") 61 echo "✓ Contains $SEGMENTS segments" 62else 63 echo "✗ No segments found" 64fi 65 66BLOB_URL=$(echo "$TRACK1" | grep "place.stream.playback.getVideoBlob" | head -1) 67echo "" 68echo "First segment URL: $BLOB_URL" 69 70if [[ -n "$BLOB_URL" ]]; then 71 FULL_BLOB_URL="${BASE_URL}/${BLOB_URL}" 72 echo "Full blob URL: $FULL_BLOB_URL" 73 74 echo "" 75 echo "Testing: Video Blob (HEAD request)" 76 RESPONSE=$(curl -s -I "$FULL_BLOB_URL") 77 78 if echo "$RESPONSE" | grep -q "HTTP/.* 200"; then 79 echo "✓ Blob accessible" 80 81 CONTENT_TYPE=$(echo "$RESPONSE" | grep -i "content-type:" | tr -d '\r') 82 echo " Content-Type: $CONTENT_TYPE" 83 84 CONTENT_LENGTH=$(echo "$RESPONSE" | grep -i "content-length:" | tr -d '\r') 85 echo " Content-Length: $CONTENT_LENGTH" 86 else 87 echo "✗ Blob not accessible" 88 echo "$RESPONSE" 89 fi 90fi 91 92echo "" 93echo "==========================================" 94echo "Test complete!" 95echo "=========================================="