<?php
// test.php - تست altin7m/youtube-downloader

ini_set('display_errors', 1);
error_reporting(E_ALL);

if (!file_exists(__DIR__ . '/vendor/autoload.php')) {
    die("vendor/autoload.php پیدا نشد.\n");
}

require 'vendor/autoload.php';

if (!class_exists('YouTube\YouTubeDownloader')) {
    die("کلاس YouTubeDownloader پیدا نشد.\n");
}

echo "✅ کتابخانه پیدا شد.\n";

$videoId = $_GET['v'] ?? 'dQw4w9WgXcQ';
$url = 'https://www.youtube.com/watch?v=' . $videoId;

try {
    $youtube = new YouTube\YouTubeDownloader();
    echo "✅ نمونه ساخته شد.\n";
    
    echo "در حال دریافت اطلاعات ویدیو...\n";
    $downloadOptions = $youtube->getDownloadLinks($url);
    
    if (!$downloadOptions) {
        die("❌ اطلاعات ویدیو دریافت نشد.\n");
    }
    
    echo "✅ اطلاعات دریافت شد.\n";
    
    // دریافت همه فرمت‌ها
    $allFormats = $downloadOptions->getAllFormats();
    echo "✅ تعداد کل فرمت‌ها: " . count($allFormats) . "\n";
    
    // دریافت اطلاعات ویدیو
    if (method_exists($downloadOptions, 'getVideoDetails')) {
        $details = $downloadOptions->getVideoDetails();
        if ($details) {
            echo "عنوان: " . ($details->title ?? 'نامشخص') . "\n";
            echo "مدت: " . ($details->duration ?? 'نامشخص') . " ثانیه\n";
        }
    }
    
    // نمایش ۵ فرمت اول
    if (count($allFormats) > 0) {
        echo "\n📋 فرمت‌های موجود (۵ فرمت اول):\n";
        $i = 0;
        foreach ($allFormats as $format) {
            if ($i >= 5) break;
            $height = $format->height ?? 'نامشخص';
            $hasVideo = isset($format->hasVideo) && $format->hasVideo ? '✅' : '❌';
            $hasAudio = isset($format->hasAudio) && $format->hasAudio ? '✅' : '❌';
            $ext = $format->container ?? $format->ext ?? 'mp4';
            echo "  - کیفیت: {$height}p | فرمت: $ext | تصویر: $hasVideo | صدا: $hasAudio\n";
            $i++;
        }
    } else {
        echo "\n⚠️ هیچ فرمتی پیدا نشد.\n";
    }
    
    echo "\n✅ تست کامل شد!\n";
    
} catch (Exception $e) {
    echo "\n❌ خطا: " . $e->getMessage() . "\n";
    echo "فایل: " . $e->getFile() . "\n";
    echo "خط: " . $e->getLine() . "\n";
}
?>