Files
tv/yt-restream.sh

22 lines
737 B
Bash
Executable File

#!/bin/bash
CHANNEL_ID="${1:-$CHANNEL_ID}"
SLUG="${2:-$SLUG}"
if [ -n "$CHANNEL_ID" ]; then
:
else
echo "Error: No channel ID provided. Use as argument or set CHANNEL_ID environment variable."
exit 1
fi
# Use SLUG if provided, otherwise use CHANNEL_ID as slug
SLUG="${SLUG:-$CHANNEL_ID}"
while true; do
VIDEO_ID=$(curl -sL "https://www.youtube.com/@$CHANNEL_ID/streams" | grep "Tap to watch live" | sed 's/.*\/watch?v=\([^\\]*\).*/\1/')
M3U8_STREAM_URL=$(yt-dlp -g -f b "https://www.youtube.com/watch?v=$VIDEO_ID")
mkdir -p "live/$SLUG"
timeout 21555 ffmpeg -i "$M3U8_STREAM_URL" -c copy -f hls -hls_time 6 -hls_list_size 10 -hls_flags delete_segments "live/$SLUG/live.m3u8"
rm -rf "live/$SLUG"/*
done