#!/bin/bash

PLAYLISTS=(
  "https://www.youtube.com/playlist?list=PLWMlt1BGODFMiHP7FrvKV7Jhbxst12ira"
  "https://www.youtube.com/playlist?list=PLWMlt1BGODFNbzrRVU7nx1k_tS9mxWfK1"
  "https://www.youtube.com/playlist?list=PLWMlt1BGODFNOWR19JJByWyvVXGDapiMt"
)

HLS_DIR="/var/www/html/baieti/hls"
FIFO="/tmp/ytpipe"

mkdir -p "$HLS_DIR"
rm -f "$FIFO"
mkfifo "$FIFO"

USER_AGENT="Mozilla/5.0"

echo "🚀 Pornesc ffmpeg HLS..."

# PORNEȘTE ffmpeg în background
ffmpeg -loglevel warning -fflags +genpts -re \
    -f mpegts -i "$FIFO" \
    -c:v libx264 -preset veryfast -crf 23 \
    -c:a aac -b:a 128k \
    -f hls \
    -hls_time 6 \
    -hls_list_size 6 \
    -hls_flags delete_segments+append_list+omit_endlist \
    -hls_segment_filename "$HLS_DIR/seg_%03d.ts" \
    "$HLS_DIR/stream.m3u8" &

sleep 2  # IMPORTANT (lasă ffmpeg să pornească)

while true; do
    VIDEOS=()

    echo "🔄 Încarc playlist..."

    for P in "${PLAYLISTS[@]}"; do
        IDS=$(yt-dlp --flat-playlist --print id "$P" 2>/dev/null)

        for ID in $IDS; do
            VIDEOS+=("https://www.youtube.com/watch?v=$ID")
        done
    done

    VIDEOS=($(shuf -e "${VIDEOS[@]}"))

    for URL in "${VIDEOS[@]}"; do
        echo "▶ Rulez: $URL"

        STREAM=$(yt-dlp \
            -f "best[height<=720]" \
            -g "$URL" \
            --user-agent "$USER_AGENT" \
            --no-warnings 2>/dev/null)

        if [ -z "$STREAM" ]; then
            echo "❌ Skip"
            continue
        fi

        echo "🎬 Trimit în pipe..."

        ffmpeg -loglevel warning -re \
            -user_agent "$USER_AGENT" \
            -i "$STREAM" \
            -c:v libx264 -preset veryfast -crf 23 \
            -c:a aac -b:a 128k \
            -f mpegts \
            "$FIFO"
    done

    echo "🔁 Restart playlist"
done
