Story
সরাসরি ভিডিও URL থেকে ভিডিও ডাউনলোড করবেন যেভাবে
সরাসরি ভিডিও URL কী, ব্রাউজারে MP4 বা WebM কীভাবে সংরক্ষণ করবেন, এবং CORS, HLS বা DASH ফাইল ডাউনলোড কেন আটকাতে পারে।
ভিডিও URL থাকা মানে ভিডিও ফাইল থাকা নয়। কিছু ঠিকানা MP4 বা WebM রিসোর্সের দিকে নির্দেশ করে। কিছু একটি HTML পেজ খোলে যাতে শুধু প্লেয়ার থাকে। কিছু অনেক ছোট খণ্ড দিয়ে তৈরি স্ট্রিমিং প্লেলিস্ট লোড করে।
তাই একটি লিংক তাড়াতাড়ি সংরক্ষিত হয় আর অন্যটি চললেও ডাউনলোড মানে না। এই লেখার বাকি অংশ সেই অবস্থা আলাদা চেনার এবং URL সত্যিই ভিডিও রিসোর্স হলেই ফাইল সংরক্ষণ করার বিষয়ে।
সরাসরি ভিডিও URL কী?
সরাসরি ভিডিও URL এমন ঠিকানা যার HTTP উত্তর নিজেই মিডিয়া রিসোর্স, তার চারপাশের ওয়েবপেজ নয়। সবচেয়ে সরল উদাহরণ এমন দেখায়:
https://example.com/video.mp4
ব্রাউজার সেই URL অনুরোধ করলে সার্ভার ভিডিও ফাইলের বাইট ফেরত দিতে পারে, প্রায়ই Content-Type যেমন video/mp4 বা video/webm সহ। মাঝে HTML ডকুমেন্ট নেই। URL নিজেই ফাইল।
ফাইল এক্সটেনশন ইঙ্গিত, নিয়ম নয়। পথে .mp4 না থাকলেও লিংক ভিডিও রিসোর্স হতে পারে:
https://example.com/media?id=123
সার্ভার যদি Content-Type: video/mp4 (বা অন্য ভিডিও ধরন) এবং এমন বডি দেয় যা সত্যিই মিডিয়া ডেটা, তবে সেটাও সরাসরি ভিডিও URL। .mp4-এ শেষ হওয়া পথ তবু রিডাইরেক্ট বা HTML ত্রুটি পেজ হতে পারে। ঠিকানার শেষ অক্ষর নয়, HTTP উত্তরকে সত্যের উৎস ধরুন।
সরাসরি ভিডিও URL বনাম ভিডিও ওয়েবপেজ
এই দুটো তুলনা করুন:
- সরাসরি ফাইল:
https://example.com/files/movie.mp4 - ওয়েবপেজ:
https://example.com/watch/movie
প্রথমটি একটি একক ভিডিও অবজেক্ট হতে পারে। দ্বিতীয়টি সাধারণত HTML ডকুমেন্ট। সেই পেজ <video> উপাদান এমবেড করতে পারে, প্লেয়ার স্ক্রিপ্ট লোড করতে পারে, তারপর মিডিয়া অন্য URL থেকে আনতে পারে যা অ্যাড্রেস বারে কখনো দেখা যায় না।
ওয়েবপেজের ঠিকানা ডাউনলোড টুলে পেস্ট করলে পেজ থেকে ফাইল বের হয় না। ব্রাউজার HTML অনুরোধ করবে। যে টুল সরাসরি, সর্বজনীনভাবে অ্যাক্সেসযোগ্য ভিডিও URL-এ কাজ করে তার নিজের মিডিয়া ঠিকানা দরকার।
NEXNARA-এর ওয়েব ভিডিও ডাউনলোডার সেই সর্বজনীন ফাইল URL-এর জন্য তৈরি, ওয়াচ পেজের জন্য নয়। এটি ওয়েবসাইট থেকে ভিডিও বের করে না, অ্যাকাউন্টে লগইন করে না, প্লেয়ার থেকে স্ট্রিম জোড়ে না।
সরাসরি URL থেকে ভিডিও কীভাবে ডাউনলোড করবেন
প্রার্থী লিংক আগে থেকে থাকলে:
- সরাসরি URL নিন। ফাইল, অবজেক্ট বা মিডিয়া URL ব্যবহার করুন—ওয়াচ পেজ নয়।
- যাচাই করুন এটি ভিডিও রিসোর্স। নতুন ট্যাবে ব্রাউজারের বিল্ট-ইন প্লেব্যাক (বা ডাউনলোড প্রম্পট) দেখা উচিত, লেআউটে প্লেয়ারওয়ালা পেজ নয়।
- আগে ব্রাউজার চেষ্টা করুন। অনেক ব্রাউজার ভিডিওর কনটেক্সট মেনু থেকে সংরক্ষণ করতে দেয়, বা সার্ভার ফাইল ডিসপোজিশন পাঠালে ডাউনলোড শুরু করে।
- আগে প্রিভিউ চাইলে ব্রাউজার টুল ব্যবহার করুন। একই URL এমন পেজে পেস্ট করুন যা সংরক্ষণের আগে ফরম্যাট, সময়কাল বা আকার দেখাতে পারে।
ওয়েব ভিডিও ডাউনলোডার সেই শেষ ধাপ। আপনি সরাসরি ভিডিও URL পেস্ট করেন। ব্রাউজার সেই হোস্টে অনুরোধ করে। রিসোর্স চালানো যায় এমন ফাইল হলে প্রিভিউ দেখা যায়। ভিডিও সার্ভার ক্রস-অরিজিন পড়া অনুমতি দিলে ডাউনলোড করা যায়; না দিলে প্রিভিউ কাজ করলে URL খোলা যায়। NEXNARA ফাইল নিজের সার্ভারে আপলোড করে না।
কোন ভিডিও ফরম্যাট ডাউনলোড করা যায়?
ব্রাউজারে «আমি কি এটি ডাউনলোড করতে পারি?» কাছাকাছি «এই ব্রাউজার কি এই ফাইল ডিকোড করতে পারে?» একক ফাইল URL-এর সাধারণ কন্টেইনার:
- MP4 — প্রায়ই ISO BMFF কন্টেইনারে H.264 বা HEVC
- WebM — সাধারণত VP8, VP9 বা AV1
- Ogg Video — কম দেখা যায়; কোডেক সমর্থন ব্রাউজার অনুযায়ী আলাদা
কন্টেইনার ও কোডেক এক জিনিস নয়। .mp4 ফাইল প্রতিটি ব্রাউজার প্রতিটি ডিভাইসে চলবে এমন গ্যারান্টি নেই। HEVC ও AV1 সমর্থন OS, হার্ডওয়্যার ও ব্রাউজার বিল্ডের উপর নির্ভর করে। HTML5 ভিডিও উপাদান ব্যবহার করা টুল সেই ব্রাউজার যা ডিকোড করতে পারে তার প্রিভিউ দেখায়। ফাইল রূপান্তর বা রিমক্স করে না।
ব্রাউজার অসমর্থিত ফরম্যাট বললে ফাইল অন্যত্র চলতে পারে—অথবা ভুল লেবেলের অবজেক্ট বা প্লেলিস্ট হতে পারে, একক ফাইল নয়।
ভিডিও চলে কিন্তু ডাউনলোড হয় না কেন?
প্লেব্যাক ও সংরক্ষণ আলাদা ব্রাউজার API ব্যবহার করে।
<video> উপাদান রিসোর্স অনুরোধ করতে পারে (প্রায়ই HTTP range অনুরোধে) এবং ফ্রেম আঁকতে পারে। অন্য অরিজিনের JavaScript বাইট পড়ে ব্যবহারকারীর রাখার ফাইল বানাতে না পারলেও এটি সফল হতে পারে।
প্রিভিউ কাজ করে কিন্তু ডাউনলোড ব্যর্থ হওয়ার সাধারণ কারণ:
- CORS. ভিডিও হোস্ট এই ওয়েবসাইটকে স্ক্রিপ্ট থেকে উত্তর পড়ার অনুমতি দেয়নি। পরের অংশ দেখুন।
- ক্রস-অরিজিন ক্রেডেনশিয়াল। মূল সাইটে কাজ করা কুকি সাধারণ ক্রস-সাইট
fetch-এ যায় না, দুই পক্ষ সম্মত না হলে। Content-Disposition.attachmentবা ফাইলনাম টপ-লেভেল নেভিগেশনের সংরক্ষণ ধরনকে প্রভাবিত করে, অন্য অরিজিনের স্ক্রিপ্ট বডি পড়তে পারবে কি না তা নয়।- সার্ভার কনফিগারেশন। CORS হেডার না থাকা বা
HEAD/GETসংমিশ্রণ আটকানো সেই টুল থামাতে পারে যা আগে রিসোর্স পরীক্ষা করে। - প্রমাণীকরণ। হোস্টে লগইন থাকলে যে URL কাজ করে অন্য সাইট থেকে 401/403 দিতে পারে।
- মেয়াদোত্তীর্ণ বা স্বাক্ষরিত URL. অবজেক্ট স্টোরেজ প্রায়ই সময়সীমাযুক্ত কোয়েরি স্ট্রিং দেয়। মেয়াদ শেষে একই লিংক ব্যর্থ হয়।
এগুলোর কোনোটাই মানে «ভিডিও নয়»। মানে এই ব্রাউজার প্রসঙ্গে কপি করার অনুমতি নেই।
CORS কী?
CORS (Cross-Origin Resource Sharing) ব্রাউজার নিয়ম যে এক অরিজিনের JavaScript কখন অন্য অরিজিনের উত্তর পড়তে পারে। এটি বিশেষ «অ্যান্টি-ডাউনলোড» পণ্য নয়। এর অস্তিত্ব যাতে https://a.example চুপিচুপি আপনার মেইল বা ফাইল https://b.example থেকে না পড়ে, b.example অনুমতি না দিলে।
ভিডিও ট্যাগ তবু ক্রস-অরিজিন ফাইল দেখাতে পারে। CORS প্রায়ই যা আটকায় তা অন্য ওয়েবসাইটের fetch(), যা কাঁচা বাইট Blob হিসেবে সেভ ডায়ালগের জন্য চায়। ভিডিও সার্ভার যদি টুলের অরিজিন অন্তর্ভুক্ত করে এমন Access-Control-Allow-Origin না পাঠায় (বা সাধারণ সর্বজনীন ফাইলের জন্য *), সেই পড়া প্রত্যাখ্যাত হয়।
চলা অন্য সাইটের স্ক্রিপ্টকে কপি রাখার অনুমতি নয়। NEXNARA সেই পরীক্ষা এড়াতে ফাইল প্রক্সি করে না। ডাউনলোড আটকালে ভিডিও হোস্টে URL খোলা বিকল্প—এবং শুধু সংরক্ষণের অধিকার থাকলে।
HLS ও DASH নিয়ে কী?
অনেক প্লেয়ার একটি MP4 লোড করে না। তারা ম্যানিফেস্ট লোড করে, তারপর অনেক সেগমেন্ট।
- HLS প্রায়ই
.m3u8-এ শেষ হওয়া URL ব্যবহার করে। সেই ফাইল প্লেলিস্ট (টেক্সট), এক অবজেক্টে পুরো সিনেমা নয়। - DASH প্রায়ই
.mpdব্যবহার করে, XML ম্যানিফেস্ট যা রিপ্রেজেন্টেশন ও সেগমেন্টের দিকে নির্দেশ করে।
সরাসরি MP4/WebM URL ও HLS/DASH প্লেলিস্ট আলাদা রিসোর্স। «.m3u8 সংরক্ষণ» ছোট টেক্সট ফাইল দেয়, সিনেমা নয়। সেগমেন্ট থেকে এক ফাইল বানাতে প্লেলিস্ট পার্স, সেগমেন্ট ডাউনলোড, এবং সাধারণত রিমক্স লাগে। ওয়েব ভিডিও ডাউনলোডার HLS বা DASH স্ট্রিম জোড়ে না। টুল স্ট্রিমিং প্লেলিস্ট বললে সেটাই প্রত্যাশিত।
DRM-সুরক্ষিত ভিডিও
বাণিজ্যিক প্লেয়ার মিডিয়াকে DRM-এ মুড়তে পারে, যেমন Widevine, FairPlay বা PlayReady। সেই ব্যবস্থা স্যাম্পল এনক্রিপ্ট করে এবং লাইসেন্স চায়। সেটা সর্বজনীন video/mp4 অবজেক্ট নয় যা এনে রাখা যায়। NEXNARA DRM ডিক্রিপ্ট বা বাইপাস করে না।
সরাসরি ভিডিও URL কীভাবে চেনা যায়
ব্যবহারিক পরীক্ষা, প্রমাণের মাত্রার ক্রমে:
- পথ
.mp4,.webm,.ogvবা অনুরূপ মিডিয়া এক্সটেনশনে শেষ হয়। উপযোগী, চূড়ান্ত নয়। - নতুন ট্যাবে URL খুললে একা ভিডিও (বা ডাউনলোড) দেখা যায়, পুরো ওয়েবসাইটের চেহারা নয়।
- প্রকাশক একে ফাইল বা অবজেক্ট লিংক বলে নথিভুক্ত করেছেন (CDN, স্টোরেজ বাকেট, «সরাসরি ডাউনলোড»)।
- উত্তর হেডারে
Content-Type: video/*আছে (যেমনvideo/mp4)।
ব্রাউজার ডেভেলপার টুল নেটওয়ার্ক প্যানেলে সেই অনুরোধের ধরন ও Content-Type দেখাতে পারে যা আপনি পেজের সাধারণ ব্যবহারকারী হিসেবে ইতিমধ্যে করেছেন। কী আনা হয়েছে তা বুঝতে সাহায্য করে। লুকানো স্ট্রিম স্ক্র্যাপ বা লগইন বাইপাসের গাইড নয়। সাইট সর্বজনীন ফাইল URL না দিলে এই পদ্ধতি প্রযোজ্য নয়।
এক্সটেনশন ও কন্টেন্ট-টাইপ দুটোই মিথ্যা বলতে পারে। .mp4 URL HTML-এ রিডাইরেক্ট হতে পারে। video/mp4 টাইপ তবু ছোট ত্রুটি বডি হতে পারে। ট্যাবে চলাই ব্যবহারিক নিশ্চিতকরণ।
সাধারণ সমস্যা
URL ওয়েবপেজ খোলে।
এটি সরাসরি ভিডিও URL নয়। ওয়াচ পেজ নয়, মিডিয়া রিসোর্সের ঠিকানা দরকার।
ভিডিও চলে কিন্তু ডাউনলোড কিছু উপযোগী করে না।
হোস্ট সম্ভবত ক্রস-অরিজিন পড়া (CORS) অনুমতি দেয় না বা ফাইল ব্রাউজারে সংরক্ষণের জন্য খুব বড়। প্রিভিউ কাজ করলে খুলুন ব্যবহার করুন, বা অনুমতি থাকলে ভিডিও হোস্টের টপ-লেভেল ট্যাব থেকে সংরক্ষণ করুন।
লিংক আগে কাজ করত এখন ব্যর্থ।
স্বাক্ষরিত বা মেয়াদোত্তীর্ণ URL টাইমারে মরে। প্রথম যেখান থেকে পেয়েছিলেন সেখান থেকে নতুন লিংক চান।
URL .m3u8 বা .mpd-এ শেষ হয়।
এটি স্ট্রিমিং প্লেলিস্ট, একক MP4/WebM ফাইল নয়। এই ডাউনলোডার সেই সেগমেন্ট জোড়ে না।
ব্রাউজার বলে ফরম্যাট সমর্থিত নয়।
সেই ব্রাউজার/OS-এ কন্টেইনার বা কোডেক নাও থাকতে পারে। অন্য ব্রাউজার চেষ্টা করুন, বা নিশ্চিত করুন ফাইল সত্যিই ভিডিও অবজেক্ট।
ব্রাউজার URL-এ পৌঁছায় না।
https://, সংযোগ, ও হোস্টের সর্বজনীন অ্যাক্সেস পরীক্ষা করুন। HTTPS টুল পেজে HTTP ফাইল মিশ্র কন্টেন্ট হিসেবেও ব্যর্থ হতে পারে।
গোপনীয়তা
এই টুলের জন্য NEXNARA ভিডিও ফাইল NEXNARA-এর সার্ভারে আপলোড করে না। এটা «URL কখনো ব্রাউজার ছাড়ে না» দাবির সমান নয়।
ঠিকানা পেস্ট করলে আপনার ব্রাউজার সেই বাইরের ভিডিও হোস্টে সরাসরি অনুরোধ করে। হোস্ট আপনার সাধারণ মিডিয়া অনুরোধ দেখতে পারে। NEXNARA মাঝে ফাইল রাখে না। ভিডিও অপারেটর তবু ট্রাফিক পায় কারণ বাইট তাদের URL থেকে আসে।
দায়িত্বশীল ব্যবহার
শুধু সেই ভিডিও ডাউনলোড করুন যা আপনার মালিকানাধীন বা ডাউনলোডের অনুমতি আপনার আছে। সর্বজনীন URL কপির লাইসেন্স নয়।
প্রশ্নোত্তর
সরাসরি ভিডিও URL কী?
এমন লিংক যার উত্তর নিজেই ভিডিও রিসোর্স (যেমন MP4 বা WebM অবজেক্ট), প্লেয়ার এমবেড করা HTML ওয়াচ পেজ নয়।
URL থেকে MP4 ডাউনলোড করা যায়?
হ্যাঁ, যখন URL সর্বজনীন MP4 (বা অনুরূপ) ফাইল এবং ব্রাউজার তা ডিকোড করতে পারে। ঠিকানা ওয়েবপেজ বা প্লেলিস্ট হলে সেই ঠিকানা সংরক্ষণে সিনেমার ফাইল পাবেন না।
ভিডিও চলে কিন্তু ডাউনলোড হয় না কেন?
প্লেয়ার মিডিয়া দেখাতে পারে অন্য ওয়েবসাইটের JavaScript-কে বাইট পড়তে না দিয়েও। CORS, প্রমাণীকরণ ও সার্ভার নীতি সাধারণ কারণ।
m3u8 URL ডাউনলোড করা যায়?
এই টুলে সম্পূর্ণ একক ভিডিও হিসেবে নয়। .m3u8 ফাইল HLS প্লেলিস্ট। NEXNARA HLS বা DASH স্ট্রিম জোড়ে না।
NEXNARA কি আমার ভিডিও আপলোড করে?
না। ফাইল NEXNARA-তে আপলোড হয় না। আপনার ব্রাউজার আপনার দেওয়া ভিডিও URL-এর সাথে কথা বলে, তাই বাইরের হোস্ট সেই অনুরোধ দেখে।
আমার ভিডিও লিংক কেন মেয়াদোত্তীর্ণ হল?
অনেক হোস্ট অবজেক্ট URL-এ স্বাক্ষর ও মেয়াদ সময় লাগায়। সেই সময়ের পর একই স্ট্রিং আর অনুমোদিত থাকে না। নতুন লিংক চান; পুরোনো সম্পাদনা করলে নবায়ন হয় না।