এই "YouTube থেকে ভিডিও সংরক্ষণ করুন" পরিষেবাগুলি কীভাবে কাজ করে?


62

মানে, তারা সাধারণত কীভাবে কাজ করে? কীভাবে তারা কোনও ভিডিও স্ট্রিমের লিঙ্কটি পাবেন (কেবল কোনও ফ্ল্যাশ প্লেয়ারযুক্ত পৃষ্ঠা নয়)?

আমি ওয়েবে অনুসন্ধান করেছি কিন্তু দরকারী কিছু খুঁজে পেলাম না (সমস্ত লিঙ্ক এই জাতীয় পরিষেবাদিগুলির দিকে নির্দেশ করে, তবে তাদের কেউই কীভাবে তারা বাস্তবে প্রয়োগ করা হয় তা বলে না)।

উত্তর:


51

এখানে একটি খুব জনপ্রিয় ওপেন সোর্স কমান্ড-লাইন ডাউনলোডার বলা হয়েছে youtube-dl, যা ঠিক তা করে। এটি প্রদত্ত ইউটিউব লিঙ্ক থেকে আসল ভিডিও এবং অডিও ফাইল লিঙ্কগুলি ধরে রাখে - অথবা ভিমেও, ইয়াহু! ভিডিও, ইউস্ট্রিম ইত্যাদি

এটি কীভাবে হয়েছে তা দেখতে, ইউটিউব এক্সট্র্যাক্টরটি দেখুন । এটি এখানে দেখানোর জন্য খুব বেশি। সরল সাইটগুলির জন্য অন্যান্য নিষ্কর্ষক উপস্থিত রয়েছে । স্টিভেন পেনির ইউটিউবের জন্যও একটি সাধারণ জাভাস্ক্রিপ্ট ডাউনলোডার রয়েছে , যা কিছুটা সোজা।

তবে মূলত, কোনও ফ্ল্যাশ ভিডিও প্লেয়ারের জন্য, এটি অবশ্যই কিছু জাভাস্ক্রিপ্টের মাধ্যমে আরম্ভ এবং কনফিগার করা উচিত। সরলভাবে বলতে গেলে, ফ্ল্যাশ অবজেক্টের প্লেয়ার লোড করার জন্য একটি ভিডিও স্ট্রিমের একটি URL পাবে।

ভিডিও স্ট্রিমটি সন্ধান করতে, আপনাকে প্রারম্ভিক কোডটি সন্ধানের জন্য ভিডিও পৃষ্ঠার এইচটিএমএল এবং জেএস কোডটি পার্স করতে হবে এবং তারপরে সেখান থেকে আসল এমপি 4 ফাইলটির লিঙ্কটি সন্ধান করার চেষ্টা করবেন। এটি প্লেইন টেক্সটে থাকতে পারে, তবে এটি কিছু নির্দিষ্ট ডাউনলোড টোকেনের সাহায্যে উড়েও উত্পন্ন হতে পারে। প্রায়শই, জাভাস্ক্রিপ্ট এটিকে পুনরায় ইঞ্জিনিয়ার করা আরও শক্ত করে তুলতে বাধ্য হয়। অথবা ভিডিও তথ্য এমন কোনও এক্সএমএল ফাইলে থাকতে পারে যা জেএস দ্বারা অবিচ্ছিন্নভাবে লোড করা হয়েছিল।

এইচটিএমএল 5 প্রগতিশীল ডাউনলোডের ভিডিওর জন্য, আসল উত্স ফাইলটি সাধারণত ট্যাগের sourceসন্তানের মধ্যে সরাসরি উল্লেখ করা হয় video, তাই আপনি যদি পৃষ্ঠাটি সন্ধান করতে চান mp4বা অনুরূপ। উদাহরণস্বরূপ জার্মান সংবাদ শো তেগেসচাউ 100 তে , আপনি পাবেন:

<source src="http://media.tagesschau.de/video/2014/0626/TV-20140626-1649-5801.webl.h264.mp4" type="video/mp4">

এমপিইজি ড্যাশ বা অ্যাপলের এইচটিটিপি লাইভ স্ট্রিমিং (এইচএলএস) এর মতো আরও উন্নত প্লেব্যাক প্রযুক্তির জন্য , আপনাকে আসল ভিডিও স্ট্রিম পেতে একটি মেটা-তথ্য ফাইল পার্স করতে হবে। মেটা ফাইল ( .mpdউদাহরণস্বরূপ DASH এ, এবং .m3u8এইচএলএস এর জন্য) ভিডিও এবং অডিওর বিভাগগুলির লিঙ্কগুলি ধারণ করবে, যা আপনাকে পরে প্লেযোগ্যযোগ্য ফাইল পাওয়ার জন্য একত্রিত করতে হবে।

এর জন্য কোনও সাধারণ সমাধান নেই। এটি লক্ষ্য সাইটের সতর্কতার সাথে পরিদর্শন এবং ডিবাগিং প্রয়োজন।


3
একটি প্রশ্ন, এই সম্পর্কে ইউটিউব / গুগলের নীতি কী? তারা এই ঠিক আছে, না এত কিছু?
জেএমকে

31
ইউটিউব পরিষেবার শর্তাদি §5.1.L এ content স্ট্রিমিং ব্যতীত অন্য কোনও উপায়ে তাদের সামগ্রীর ব্যবহার নিষিদ্ধ করে, তাই তাত্ত্বিকভাবে এটি অনুমোদিত নয়। বাস্তবে, তারা এটি প্রয়োগ করতে সক্ষম হবে না। যে কোনও ডাউনলোডার কমবেশি অনুকরণ করতে পারে যে এটি কেবল স্ট্রিমিং।
slhck

2
@ স্টিভেনপেনি আপনার কি কোনও অ-মিনিড সংস্করণ আছে?
ট্যাঙ্কোরস্যামশ

5
@slhck ফ্ল্যাশ নিজে থেকে এইচটিটিপি অনুরোধ করতে পারে। পরিবর্তে, এটি ব্রাউজারের এইচটিটিপি ইঞ্জিন ব্যবহার করে। যদি ফ্ল্যাশ নিজেই অনুরোধ করে, তবে সেগুলি ব্রাউজারে "দৃশ্যমান" হবে না। অবশ্যই বিজ্ঞাপনদাতাদের জন্য দুর্দান্ত হবে। ;)
ড্যানিয়েল বি

3
@ এসএলএইচএইচকি তারা এটিকে প্রোগ্রামিকভাবে প্রয়োগ করতে পারে না , তবে তারা যদি তাদের আইনজীবি দল পেয়ে থাকে তবে তারা আইনত এটি প্রয়োগ করতে পারে ?
ক্রંચার

35

ইউটিউব বুকমার্কলেট

এটি আমি জাভাস্ক্রিপ্ট দিয়ে এটি করেছি

ytplayer.config.argsঅবজেক্ট দিয়ে শুরু করুন । এটিতে ভিডিওর সমস্ত URL রয়েছে। এটি ভেঙে গেছে

url_encoded_fmt_stream_map // traditional: contains video and audio stream
adaptive_fmts              // DASH: contains video or audio stream

এগুলির প্রত্যেকটিই আমি "স্ট্রিম অবজেক্টস" বলি কমা দ্বারা পৃথক করা অ্যারে। প্রতিটি "স্ট্রিম অবজেক্ট" এর মধ্যে এই জাতীয় মান থাকবে

url  // direct HTTP link to a video
itag // code specifying the quality
s    // signature, security measure to counter downloading

প্রতিটি ইউআরএল এনকোড হবে যাতে আপনার সেগুলি ডিকোড করতে হবে। এখন জটিল অংশ।

ইউটিউবে তাদের ভিডিওগুলির জন্য কমপক্ষে 3 সুরক্ষা স্তর রয়েছে

unsecured // as expected, you can download these with just the unencoded URL
s         // see below
RTMPE     // uses "rtmpe://" protocol, no known method for these

আরটিএমপিই ভিডিওগুলি সাধারণত অফিসিয়াল পূর্ণ দৈর্ঘ্যের চলচ্চিত্রগুলিতে ব্যবহৃত হয় এবং এসডাব্লুএফ যাচাইকরণের ধরণ ২ দিয়ে সুরক্ষিত থাকে এটি ২০১১ সাল থেকে প্রায় হয়েছে এবং এখনও বিপরীত ইঞ্জিনিয়ার হওয়া যায়নি।

ধরণের "গুলি" ভিডিওগুলি সবচেয়ে কঠিন যা আসলে ডাউনলোড করা যায়। আপনি সাধারণত ভিভো ভিডিওগুলিতে এবং এর মতো দেখতে পাবেন। তারা যেমন একটি স্বাক্ষর দিয়ে শুরু

AA5D05FA7771AD4868BA4C977C3DEAAC620DE020E.0F421820F42978A1F8EAFCDAC4EF507DB5

তারপরে স্বাক্ষরটি এই জাতীয় কোনও ক্রিয়া সহ স্ক্র্যাম্বল হয়

function mo(a) {
  a = a.split("");
  a = lo.rw(a, 1);
  a = lo.rw(a, 32);
  a = lo.IC(a, 1);
  a = lo.wS(a, 77);
  a = lo.IC(a, 3);
  a = lo.wS(a, 77);
  a = lo.IC(a, 3);
  a = lo.wS(a, 44);
  return a.join("")
}

এই ফাংশনটি গতিশীল, এটি সাধারণত প্রতিদিন পরিবর্তিত হয়। এটি আরও কঠিন করার জন্য কোনও ইউআরএল এ ফাংশনটি হোস্ট করা হয়

http://s.ytimg.com/yts/jsbin/html5player-en_US-vflycBCEX.js

এটি একই-উত্স নীতিটির সমস্যাটির পরিচয় দেয় । মূলত, আপনি এই ফাইলটি ডাউনলোড করতে পারবেন না www.youtube.comকারণ এগুলি ভিন্ন ডোমেন। এই সমস্যার একটি সমাধান হ'ল সিওআরএস । সিওআরএস সহ, s.ytimg.comএই শিরোনামটি যুক্ত করতে পারে

Access-Control-Allow-Origin: http://www.youtube.com

এবং এটি জাভাস্ক্রিপ্ট থেকে ডাউনলোড করার অনুমতি দেয় www.youtube.com। অবশ্যই তারা এটি করে না। এই workaround জন্য একটি workaround একটি CORS প্রক্সি ব্যবহার করা হয়। এটি এমন একটি প্রক্সি যা সমস্ত অনুরোধের জন্য নিম্নলিখিত শিরোনামের সাথে প্রতিক্রিয়া জানায়

Access-Control-Allow-Origin: *

সুতরাং, এখন আপনি নিজের জেএস ফাইলটি প্রক্সি করেছেন এবং স্বাক্ষরটি স্ক্র্যাম্ব করার জন্য ফাংশনটি ব্যবহার করেছেন, আপনি ভিডিওটি ডাউনলোড করার জন্য ক্যোয়ারিং স্ট্রিংয়ে এটি ব্যবহার করতে পারেন।


1
আপনি কী (ড্যাশ প্লেব্যাকের জন্য) জানতে পেরেছেন যে কীভাবে ইউটিউব প্লেয়ার মিডিয়া উপস্থাপনার জন্য অনুরোধ করা বাইট রেঞ্জগুলি নির্ধারণ করে? এমপিডি ফাইলটি কেবলমাত্র বিভাগগুলিকে তালিকাভুক্ত করে।
স্ল্যাক করুন

2
ঠিক না .. ভিডিও এবং অডিওর জন্য একটি একক ফাইল রয়েছে, তবে ইউটিউব তাদের বিভিন্ন অংশে বাইট রেঞ্জের মাধ্যমে অনুরোধ করে। আপনি যদি অন্য কোনও মানের স্যুইচ করেন তবে এটি বাইটের সীমাটিও পরিবর্তন করবে। শুধু ভাবছেন যে খেলোয়াড় কীভাবে জানেন যে কোনটি বাইট অফসেটের সাথে মিলবে।
slhck

1
আপনি কি কোনও sটাইপ ভিডিও এবং RTMPEটাইপ ভিডিওর উদাহরণ দিতে পারেন ?
ক্লো

@ সুরজজাইন এখানে নতুন পৃষ্ঠা - আমি এখন ভিন্ন পদ্ধতি ব্যবহার করায় আমি এই উত্তরটি আবারও লিখব github.com/svnpenn/umber/blob/master/bmklet/youtube/download.js
স্টিভেন পেনি

লিঙ্কটি আমাকে একটি 404 দেয় you আপনি কি রেপো সরিয়েছেন?
darksoulsong

1

আমার উত্তর: ২০১২ সালের ২২ জানুয়ারী থেকে, আপনি যদি আপনার ব্যবহারকারীর তথ্যের সাথে লিঙ্ক না রেখে বাইপাস চালানোর চেষ্টা করেন তবে এই পদ্ধতিগুলি ব্যবহার করে ধরা পড়তে পারে।

কেন? যেহেতু আমি এই প্ল্যাটফর্মে একজন নতুন ব্যবহারকারী, আমি @ ড্যানিয়েল-বি দ্বারা নির্দিষ্ট বিধি সম্পর্কে মন্তব্য করতে পারি না । To 6.1 জি $ এর অধীনে ইউটিউবের জন্য নতুন টস অনুসারে (জার্মান হিসাবে আমি জার্মানিতে আছি; অনুবাদ করুন)

আপনি যে কোনও অটোমেটেড সিস্টেমকে (কোনও রোবট, স্পাইডার বা অফলাইন পাঠক সহ - তবে সীমাবদ্ধ নয়) সম্মত হন যাতে ওয়েবসাইটে এমনভাবে অ্যাক্সেস হয় যাতে ইউটিউব নির্দেশিত নির্দিষ্ট সময়ের মধ্যে সার্ভারের আরও অনুরোধগুলি যথাযথভাবে উত্পাদন করতে সক্ষম হয় কোনও জনসাধারণ সর্বজনীনভাবে উপলব্ধ, অশোধিত মানক ওয়েব ব্রাউজার ব্যবহার করে একই সময়ের মধ্যে;

এখন তারা প্রতিটি অনুরোধের সময়কাল জানতে এবং আপনি লঙ্ঘন করছেন কিনা তা জানতে পারে। এখন কীভাবে সম্ভব, এই দৃশ্যের ভিত্তিতে এবং আপনার বাহ্যিক আইপি ঠিকানাটি আপনি যদি কোনও পরিষেবার সাথে ব্যবহারকারীর বিবরণ লিঙ্ক না করে নিজের সুরক্ষার জন্য ভিপিএন ব্যবহার করেন তবেও জানা যাবে।


1
ভবিষ্যতের স্বাগত ভ্রমণকারী ... এটি লেখকের প্রশ্নের উত্তর কীভাবে তা স্পষ্ট নয়
রামহাউন্ড

যদি আপনি কোনও নির্দিষ্ট উত্তরের প্রসঙ্গে লেখককে সতর্ক করতে চেয়েছিলেন, তবে আপনার সম্ভবত একটি মন্তব্য জমা দেওয়া উচিত ছিল এবং এমন কোনও উত্তর সম্ভবত হ্রাস করা উচিত ছিল যা আপনি সম্ভবত আইনী সমস্যাগুলি অনুসরণ করতে পারে বলে সহায়ক বলে মনে করেন নি। এই উত্তরটি আরও আলোচনা করে যে আপনি আলোচনার ফোরাম পোস্টে কী পাবেন এবং সুপার ব্যবহারকারী, কোনও আলোচনা ফোরাম নয়
রামহাউন্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.