Story

چگونه از نشانی مستقیم ویدیو فایل را دانلود کنیم

نشانی مستقیم ویدیو چیست، چگونه فایل MP4 یا WebM را در مرورگر ذخیره کنید، و چرا CORS، HLS یا DASH می‌توانند دانلود فایل را مسدود کنند.

داشتن یک نشانی ویدیو با داشتن یک فایل ویدیو یکی نیست. بعضی نشانی‌ها به منبع MP4 یا WebM اشاره می‌کنند. بعضی یک صفحه HTML باز می‌کنند که فقط شامل یک پخش‌کننده است. بعضی یک فهرست پخش جریانی می‌بارند که از قطعه‌های کوچک زیاد ساخته شده است.

به همین دلیل یک پیوند سریع ذخیره می‌شود و دیگری حتی وقتی ویدیو پخش می‌شود از دانلود سر باز می‌زند. ادامه این مقاله درباره تشخیص این حالت‌هاست و ذخیره فایل فقط وقتی که نشانی واقعاً یک منبع ویدیو باشد.

نشانی مستقیم ویدیو چیست؟

نشانی مستقیم ویدیو آدرسی است که پاسخ HTTP آن خود منبع رسانه است، نه صفحه وبی دور آن. ساده‌ترین مثال این شکل است:

https://example.com/video.mp4

وقتی مرورگر آن نشانی را درخواست می‌کند، سرور می‌تواند بایت‌های یک فایل ویدیو را برگرداند، اغلب با Content-Type مثل video/mp4 یا video/webm. سند HTML در میانه نیست. نشانی خودِ فایل است.

پسوند فایل یک سرنخ است، نه یک قاعده. پیوند می‌تواند بدون .mp4 در مسیر هم منبع ویدیو باشد:

https://example.com/media?id=123

اگر سرور با Content-Type: video/mp4 (یا نوع ویدیوی دیگر) و بدنی که واقعاً داده رسانه است پاسخ دهد، باز هم نشانی مستقیم ویدیو است. مسیری که به .mp4 ختم شود همچنان می‌تواند تغییرمسیر یا صفحه خطای HTML باشد. پاسخ HTTP را منبع حقیقت بدانید، نه حروف انتهای آدرس.

نشانی مستقیم ویدیو در برابر صفحه وب ویدیو

این دو را مقایسه کنید:

  • فایل مستقیم: https://example.com/files/movie.mp4
  • صفحه وب: https://example.com/watch/movie

اولی می‌تواند یک شیء ویدیوی واحد باشد. دومی معمولاً یک سند HTML است. آن صفحه ممکن است عنصر <video> جاسازی کند، اسکریپت پخش‌کننده بار کند، و سپس رسانه را از نشانی دیگری بگیرد که هرگز در نوار آدرس ظاهر نمی‌شود.

چسباندن نشانی صفحه وب در ابزار دانلود، فایل را از صفحه بیرون نمی‌کشد. مرورگر HTML درخواست می‌کند. ابزاری که روی نشانی‌های مستقیم و در دسترس عموم ویدیو کار می‌کند به خود آدرس رسانه نیاز دارد.

دانلودر ویدیوی وب در NEXNARA برای همان نشانی فایل عمومی ساخته شده است، نه صفحه تماشا. ویدیو از وب‌سایت‌ها استخراج نمی‌کند، وارد حساب نمی‌شود، و جریان‌ها را از پخش‌کننده مونتاژ نمی‌کند.

چگونه از نشانی مستقیم ویدیو دانلود کنیم

وقتی پیوند نامزدی از قبل دارید:

  1. نشانی مستقیم را بگیرید. از نشانی فایل، شیء یا رسانه استفاده کنید—نه صفحه تماشا.
  2. بررسی کنید منبع ویدیو باشد. زبانه جدید باید پخش داخلی مرورگر (یا اعلان دانلود) نشان دهد، نه صفحه‌ای با پخش‌کننده در چیدمان.
  3. ابتدا مرورگر را امتحان کنید. بسیاری از مرورگرها از منوی زمینه ویدیو ذخیره می‌کنند، یا اگر سرور disposition فایل بفرستد دانلود را شروع می‌کنند.
  4. وقتی پیش‌نمایش می‌خواهید از ابزار مرورگر استفاده کنید. همان نشانی را در صفحه‌ای بچسبانید که قالب، مدت یا اندازه را قبل از ذخیره نشان دهد.

دانلودر ویدیوی وب همان گام آخر است. نشانی مستقیم ویدیو را جای‌گذاری می‌کنید. مرورگر از آن میزبان درخواست می‌کند. اگر منبع فایل قابل‌پخش باشد، پیش‌نمایش ظاهر می‌شود. وقتی سرور ویدیو خواندن میان‌مبدأ را اجازه دهد می‌توانید دانلود کنید؛ وقتی ندهد، اگر پیش‌نمایش کار کند همچنان می‌توانید نشانی را باز کنید. NEXNARA فایل را به سرورهای خودش بارگذاری نمی‌کند.

کدام قالب‌های ویدیو قابل دانلودند؟

در مرورگر، «آیا می‌توانم این را دانلود کنم؟» نزدیک است به «آیا این مرورگر می‌تواند این فایل را رمزگشایی کند؟». محفظه‌های رایج برای نشانی تک‌فایل:

  • MP4 — اغلب H.264 یا HEVC در محفظه ISO BMFF
  • WebM — معمولاً VP8، VP9 یا AV1
  • Ogg Video — کمتر رایج؛ پشتیبانی کدک بسته به مرورگر فرق می‌کند

محفظه و کدک یکی نیستند. فایل .mp4 تضمین نمی‌کند در هر مرورگر روی هر دستگاه پخش شود. پشتیبانی HEVC و AV1 به سیستم‌عامل، سخت‌افزار و ساخت مرورگر بستگی دارد. ابزاری که از عنصر ویدیوی HTML5 استفاده می‌کند همان چیزی را پیش‌نمایش می‌کند که آن مرورگر بتواند رمزگشایی کند. فایل را تبدیل یا دوباره بسته‌بندی نمی‌کند.

اگر مرورگر قالب پشتیبانی‌نشده گزارش کند، فایل ممکن است جای دیگر پخش شود—یا شیء نادرست‌برچسب یا فهرست پخش باشد نه یک فایل واحد.

چرا ویدیو پخش می‌شود اما دانلود نمی‌شود؟

پخش و ذخیره از APIهای متفاوت مرورگر استفاده می‌کنند.

عنصر <video> می‌تواند منبع را درخواست کند (اغلب با درخواست‌های HTTP range) و فریم‌ها را بکشد. این می‌تواند موفق شود حتی وقتی JavaScript روی مبدأ دیگر اجازه ندارد بایت‌ها را بخواند و آن‌ها را به فایلی تبدیل کند که کاربر نگه دارد.

دلایل معمول اینکه پیش‌نمایش کار می‌کند اما دانلود شکست می‌خورد:

  • CORS. میزبان ویدیو به این وب‌سایت اجازه نداد پاسخ را از اسکریپت بخواند. بخش بعد را ببینید.
  • اعتبارنامه میان‌مبدأ. کوکی‌هایی که در سایت اصلی کار می‌کنند در یک fetch ساده بین‌سایتی فرستاده نمی‌شوند مگر هر دو طرف موافقت کنند.
  • Content-Disposition. attachment یا نام فایل روی نحوه ذخیره ناوبری سطح بالا اثر می‌گذارد، نه بر اینکه اسکریپت مبدأ دیگر بتواند بدن را بخواند.
  • پیکربندی سرور. نبود سرآیندهای CORS یا مسدود بودن ترکیب‌های HEAD/GET می‌تواند ابزاری را که ابتدا منبع را بازرسی می‌کند متوقف کند.
  • احراز هویت. نشانی‌ای که وقتی در میزبان وارد شده‌اید کار می‌کند ممکن است از سایت دیگر 401/403 برگرداند.
  • نشانی‌های منقضی یا امضاشده. ذخیره‌سازی شیء اغلب رشته پرس‌وجوی زمان‌محدود صادر می‌کند. پس از انقضا همان پیوند شکست می‌خورد.

هیچ‌کدام یعنی «ویدیو نیست». یعنی این بافت مرورگر اجازه کپی آن را ندارد.

CORS چیست؟

CORS (Cross-Origin Resource Sharing) قاعده مرورگر است برای اینکه JavaScript روی یک مبدأ چه زمانی می‌تواند پاسخ مبدأ دیگر را بخواند. محصول ویژه «ضددانلود» نیست. وجود دارد تا https://a.example نتواند بی‌صدا نامه یا فایل‌های شما را از https://b.example بخواند مگر b.example اجازه دهد.

برچسب ویدیو همچنان می‌تواند فایل میان‌مبدأ را نمایش دهد. آنچه CORS اغلب مسدود می‌کند fetch() از وب‌سایت دیگری است که بایت‌های خام را به‌صورت Blob برای گفتگوی ذخیره می‌خواهد. اگر سرور ویدیو مقدار Access-Control-Allow-Origin که مبدأ ابزار را شامل شود (یا * برای فایل عمومی ساده) نفرستد، آن خواندن رد می‌شود.

پخش مجوز ذخیره رونوشت برای اسکریپت سایت دیگر نیست. NEXNARA فایل را پروکسی نمی‌کند تا آن بررسی را دور بزند. اگر دانلود مسدود شد، باز کردن نشانی روی میزبان ویدیو جایگزین است—و فقط اگر حق ذخیره داشته باشید.

HLS و DASH چطور؟

بسیاری از پخش‌کننده‌ها یک MP4 بار نمی‌کنند. یک مانیفست بار می‌کنند، سپس قطعه‌های زیاد.

  • HLS اغلب از نشانی ختم‌شده به .m3u8 استفاده می‌کند. آن فایل فهرست پخش (متن) است، نه فیلم کامل در یک شیء.
  • DASH اغلب از .mpd استفاده می‌کند، مانیفست XML که به بازنمایی‌ها و قطعه‌ها اشاره می‌کند.

نشانی مستقیم MP4/WebM و فهرست پخش HLS/DASH منابع متفاوت‌اند. ذخیره «همان .m3u8» یک فایل متن کوچک می‌دهد، نه فیلم. ساختن یک فایل از قطعه‌ها نیاز به تجزیه فهرست، دانلود قطعه، و معمولاً بسته‌بندی دوباره دارد. دانلودر ویدیوی وب جریان‌های HLS یا DASH را مونتاژ نمی‌کند. اگر ابزار فهرست پخش جریانی گزارش کند، انتظار همین است.

ویدیوی محافظت‌شده با DRM

پخش‌کننده‌های تجاری ممکن است رسانه را در DRM مانند Widevine، FairPlay یا PlayReady بپیچند. آن سامانه‌ها نمونه‌ها را رمز می‌کنند و مجوز می‌خواهند. آن یک شیء عمومی video/mp4 نیست که بتوانید واکشی کنید و نگه دارید. NEXNARA DRM را رمزگشایی یا دور نمی‌زند.

چگونه نشانی مستقیم ویدیو را بشناسیم

بررسی‌های عملی، به ترتیب میزان اثبات:

  • مسیر به .mp4، .webm، .ogv یا پسوند رسانه مشابه ختم می‌شود. مفید، نه قطعی.
  • باز کردن نشانی در زبانه جدید ویدیوی تنها (یا دانلود) نشان می‌دهد، نه کل ظاهر وب‌سایت.
  • ناشر آن را پیوند فایل یا شیء مستند کرده است (CDN، سطل ذخیره، «دانلود مستقیم»).
  • سرآیندهای پاسخ شامل Content-Type: video/* هستند (مثلاً video/mp4).

ابزارهای توسعه‌دهنده مرورگر می‌توانند نوع و Content-Type درخواست را در پنل شبکه نشان دهند، برای درخواستی که قبلاً به‌عنوان کاربر عادی صفحه انجام داده‌اید. کمک می‌کند بفهمید چه چیزی واکشی شد. راهنمای خراشیدن جریان‌های پنهان یا دور زدن ورود نیست. اگر سایت نشانی فایل عمومی ندهد، این روند اعمال نمی‌شود.

پسوند و نوع محتوا هر دو می‌توانند دروغ بگویند. نشانی .mp4 ممکن است به HTML تغییرمسیر دهد. نوع video/mp4 ممکن است هنوز بدن خطای کوچک باشد. پخش در زبانه تأیید عملی است.

مشکلات رایج

نشانی صفحه وب باز می‌کند.
نشانی مستقیم ویدیو نیست. به آدرس منبع رسانه نیاز دارید، نه صفحه تماشا.

ویدیو پخش می‌شود اما دانلود کار مفیدی نمی‌کند.
میزبان احتمالاً خواندن میان‌مبدأ (CORS) را منع کرده یا فایل برای ذخیره داخل مرورگر خیلی بزرگ است. اگر پیش‌نمایش کار می‌کند باز کردن را به کار ببرید، یا وقتی اجازه دارید از میزبان ویدیو در زبانه سطح بالا ذخیره کنید.

پیوند قبلاً کار می‌کرد و حالا شکست می‌خورد.
نشانی‌های امضاشده یا منقضی روی زمان‌سنج می‌میرند. پیوند تازه را از همان جایی بخواهید که اولی را گرفتید.

نشانی به .m3u8 یا .mpd ختم می‌شود.
فهرست پخش جریانی است، نه یک فایل MP4/WebM واحد. این دانلودر آن قطعه‌ها را به هم نمی‌دوزد.

مرورگر می‌گوید قالب پشتیبانی نمی‌شود.
محفظه یا کدک ممکن است در آن مرورگر/سیستم‌عامل در دسترس نباشد. مرورگر دیگری امتحان کنید، یا تأیید کنید فایل واقعاً شیء ویدیو است.

مرورگر به نشانی نمی‌رسد.
https://، اتصال، و دسترسی عمومی میزبان را بررسی کنید. فایل HTTP روی صفحه ابزار HTTPS هم می‌تواند به‌عنوان محتوای ترکیبی شکست بخورد.

حریم خصوصی

NEXNARA برای این ابزار فایل ویدیو را به سرورهای NEXNARA بارگذاری نمی‌کند. این همان ادعای «نشانی هرگز مرورگر را ترک نمی‌کند» نیست.

وقتی آدرسی جای‌گذاری می‌کنید، مرورگر شما مستقیماً از آن میزبان ویدیوی خارجی درخواست می‌کند. میزبان می‌تواند یک درخواست رسانه عادی از شما ببیند. NEXNARA فایل را در میانه ذخیره نمی‌کند. گرداننده ویدیو همچنان ترافیک می‌گیرد چون بایت‌ها از نشانی او می‌آیند.

استفاده مسئولانه

فقط ویدیوهایی را دانلود کنید که مال شما هستند یا اجازه دانلود آن‌ها را دارید. نشانی عمومی مجوز کپی نیست.

پرسش‌های متداول

نشانی مستقیم ویدیو چیست؟

پیوندی که پاسخ آن خود منبع ویدیو است (مثلاً شیء MP4 یا WebM)، نه صفحه تماشای HTML که پخش‌کننده جاسازی کرده باشد.

آیا می‌توانم MP4 را از یک نشانی دانلود کنم؟

بله، وقتی نشانی فایل MP4 (یا مشابه) عمومی باشد و مرورگر بتواند آن را رمزگشایی کند. اگر آدرس صفحه وب یا فهرست پخش باشد، ذخیره آن آدرس فایل فیلم را به شما نمی‌دهد.

چرا ویدیو پخش می‌شود اما دانلود نمی‌شود؟

پخش‌کننده می‌تواند رسانه را نشان دهد بدون اینکه به JavaScript وب‌سایت دیگر اجازه خواندن بایت‌ها بدهد. CORS، احراز هویت و سیاست سرور علت‌های معمول‌اند.

آیا می‌توانم نشانی m3u8 را دانلود کنم؟

نه به‌صورت یک ویدیوی تمام‌شده واحد با این ابزار. فایل .m3u8 فهرست پخش HLS است. NEXNARA جریان‌های HLS یا DASH را مونتاژ نمی‌کند.

آیا NEXNARA ویدیوی من را بارگذاری می‌کند؟

خیر. فایل به NEXNARA بارگذاری نمی‌شود. مرورگر شما با نشانی ویدیویی که وارد می‌کنید حرف می‌زند، پس میزبان خارجی آن درخواست را می‌بیند.

چرا پیوند ویدیوی من منقضی شد؟

بسیاری از میزبان‌ها امضا و زمان انقضا به نشانی شیء می‌چسبانند. پس از آن زمان همان رشته دیگر مجاز نیست. پیوند تازه بخواهید؛ ویرایش قدیمی آن را تمدید نمی‌کند.