| Server IP : 45.94.215.241 / Your IP : 216.73.216.122 Web Server : Apache/2.4.66 (Ubuntu) System : Linux srv2937474766 7.0.0-28-generic #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.5.4 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/player/video/tracks/ |
Upload File : |
#!/bin/bash
# بررسی تعداد آرگومانها
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <input_text_file> <output_folder_name>"
echo "Example: $0 links.txt my_movies"
exit 1
fi
# دریافت نام فایل ورودی و نام پوشه خروجی از ورودی کاربر
INPUT_FILE="$1"
OUTPUT_DIR="$2"
# بررسی وجود فایل ورودی
if [ ! -f "$INPUT_FILE" ]; then
echo "Error: Input file '$INPUT_FILE' not found."
exit 1
fi
# ایجاد پوشه خروجی اگر وجود نداشته باشد
mkdir -p "$OUTPUT_DIR"
echo "Starting download and conversion process..."
echo "Output directory: $OUTPUT_DIR"
# خواندن خطوط فایل تکست
# استفاده از while read برای مدیریت صحیح فضاها و کاراکترهای خاص
while IFS= read -r line || [[ -n "$line" ]]; do
# نادیده گرفتن خطوط خالی و کامنتها (اگر با # شروع شوند)
[[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue
URL="$line"
# استخراج نام فایل از URL
# این دستور آخرین بخش URL (بعد از آخرین /) را برمیگرداند
FILENAME=$(basename "$URL")
# اگر نام فایل خالی بود یا نامعتبر بود، رد شو
if [ -z "$FILENAME" ]; then
echo "Warning: Could not extract filename from URL: $URL"
continue
fi
echo "Downloading: $FILENAME"
# دانلود فایل با wget به پوشه مقصد
# --continue برای ادامه دانلود ناقص
# -P برای تعیین پوشه مقصد
wget --continue -P "$OUTPUT_DIR" "$URL"
# بررسی موفقیت دانلود
if [ $? -ne 0 ]; then
echo "Error: Download failed for $FILENAME"
continue
fi
# ساخت نام فایل vtt با تغییر پسوند از mkv به vtt
# مثال: movie.mkv -> movie.vtt
VTT_FILENAME="${FILENAME%.mkv}.vtt"
# مسیر کامل فایلها
MKV_PATH="$OUTPUT_DIR/$FILENAME"
VTT_PATH="$OUTPUT_DIR/$VTT_FILENAME"
echo "Converting subtitles: $FILENAME -> $VTT_FILENAME"
# اجرای دستور ffmpeg
# -y برای جایگزینی فایل خروجی اگر وجود داشته باشد (اختیاری)
ffmpeg -y -i "$MKV_PATH" -map 0:s:0 "$VTT_PATH" 2>/dev/null
# بررسی موفقیت تبدیل
if [ $? -eq 0 ]; then
echo "Successfully converted: $VTT_FILENAME"
else
echo "Warning: Conversion failed for $FILENAME. Subtitle track might not exist."
fi
done < "$INPUT_FILE"
echo "Process completed."