ভিডিও ডাউনলোড না করেই `youtube-dl` এর সাথে ইউটিউব ভিডিওর URL পাওয়া ধীর


10

আমি ইউটিউব-ডিএল এবং -gভিডিওটি ডাউনলোড না করে "সিমুলেট" বিকল্পটি ব্যবহার করে ইউআরএল পেতে চাই ।

সুতরাং আমি নিম্নলিখিত আদেশটি দিয়েছি:

youtube-dl -g https://www.youtube.com/watch?v=k4JGSAmu4lg

এটি 7 থেকে 8 সেকেন্ড পরে নিম্নলিখিত আউটপুট দেয়

https://r20---sn-cvh7zn7d.googlevideo.com/videoplayback?initcwndbps=1113000&mt=1408702970&requiressl=yes&ipbits=0&sver=3&fexp=901454%2C902408%2C919145%2C924626%2C927622%2C927904%2C931330%2C931983%2C934024%2C934030%2C934804%2C945118%2C945308%2C946023%2C951914&ratebypass=yes&signature=38F111D46D72FFC50B47D50B3C9A631099BF5F83.FA134C91F407989B95ACADC1F1F6946B8F18C158&upn=tU0u5t7A2Uw&sparams=id%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmm%2Cms%2Cmv%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mm=31&expire=1408724634&id=o-AJNPuDp9TKMKiwzUwvSk76W7JdA0cx0bRSum9mPJJ7Vo&mv=u&source=youtube&ms=au&key=yt5&ip=115.113.1.50&itag=18

তবে সমস্যাটি হ'ল ইউআরএল অনুসন্ধানের জন্য এটি 7 থেকে 8 সেকেন্ড সময় নিয়েছে।
এটির দ্রুততর হতে পারে এমন কোনও উপায় আছে?


"সিমুলেট" বলতে আপনার অর্থ কী?
ভোলকার সিগেল

যখন আমরা ইউটিউব-ডিএল অনুসারে -g বিকল্পটি দিই, এটি আউটপুট হিসাবে উল্লিখিত হিসাবে এটি ইউআরএল উত্পন্ন (অনুকরণ) করবে)
ভরথ কুমার রেড্ডি বোজ্জা

উত্তর:


9

সময় ব্যয় করে কাজ করা

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

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

সুতরাং যদি কোনও কিছু ধীর হয় তবে এটি ইতিমধ্যে অনুরোধের সংখ্যা দ্বারা বহুগুণ।

আমার জন্য এটি খুব দ্রুত লাইনে 1.5 সেকেন্ড সময় নেয় - এটি 8 সেকেন্ড থেকে খুব বেশি দূরে নয়।


কীভাবে সন্ধান করবেন

আমি যে কমান্ডগুলি খুঁজে পেতে ব্যবহার করব তা প্রদর্শন করব:

উদাহরণগুলি আরও পরিপাটি করে তুলতে, আমরা ইউআরএলটির জন্য একটি পরিবর্তনশীল ব্যবহার করি:

$ u="https://www.youtube.com/watch?v=k4JGSAmu4lg"

আমরা আদেশের সময়কাল পরিমাপ করতে চাই; কমান্ডটি ব্যবহার করে কমান্ড timeএবং শেল বিল্টিনের মিশ্রণ না করার জন্য যত্ন নেওয়া দরকার। লাইনগুলি সংক্ষিপ্ত করতে আমরা একটি ছোট ফাংশন ব্যবহার করি:

$ t(){/usr/bin/time -f 'Time: %es' "$@";}

আপনার আদেশটি ভিডিও ফাইলের URL লিখেছেন (80 টি কলামে ছাঁটা হয়েছে):

$ youtube-dl -g "$u"
https://r20---sn-cxg7en7d.googlevideo.com/videoplayback?signature=091F68E823

আমার কম্পিউটারে চালানোর জন্য সময়টি মাপতে দিন:

$ t youtube-dl -g "$u"
https://r20---sn-cxg7en7d.googlevideo.com/videoplayback?signature=091F68E823
Time: 1.44s

ঠিক আছে, দেড় সেকেন্ড প্রশ্নের চেয়ে দ্রুত, তবে এত দ্রুত নয়। তবে কীভাবে সময় কাটাচ্ছে? হতে পারে এটি কোনও লুকানো উপায়ে ভিডিওটি ডাউনলোড করে তা বাতিল করে দেয়? ভিডিওটি 360 পি তে 11 মিনিটের is কোনও বিকল্প ছাড়াই এটি ডাউনলোড করতে প্রায় 13s - দশগুণ বেশি সময় লাগে।
ভার্জোজ অপশন সহ আরও নিবিড় নজর দেওয়া দরকার -v:

$ t youtube-dl -v -g "$u"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', '-g', 'https://www.youtube.com/watch?v=k4J
[debug] Encodings: locale 'UTF-8', fs 'UTF-8', out 'UTF-8', pref: 'UTF-8'
[debug] youtube-dl version 2014.02.06
[debug] Python version 2.7.6 - Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14
[debug] Proxy map: {}
https://r20---sn-cxg7en7d.googlevideo.com/videoplayback?sparams=id%2Cinitcwn
Time: 1.40s

ওহ, '[ডিবাগ]' লাইনগুলি প্রিন্ট হওয়ার আগে কিছুটা বিলম্ব হয়েছে। দেখে মনে হচ্ছে youtube-dlএটির নিজের কনফিগারেশন সেটআপের জন্য কিছুটা সময় ব্যয় করেছে। এটি এক সেকেন্ড বা তার এক চতুর্থাংশ, আমরা যে বিলম্বটি সন্ধান করছি তা নয়। তবে আমরা এটি থেকে কী শিখতে পারি তা হ'ল youtube-dlবাস্তবায়নটি নিজেই ধীর হতে পারে।
বার্তাগুলির পরে, ফলাফল URL মুদ্রণ না হওয়া পর্যন্ত কিছুই ঘটে না until সুতরাং আমরা এখনও আকর্ষণীয় অংশটি দেখতে পাচ্ছি না।
বিকল্পটি -gএই ভিডিওটি ডাউনলোড করার "অনুকরণ" করা এই অর্থে যে এটি সেই অর্ধ-গোপন URL খুঁজে বের করার জটিল অংশটি করে, এটি মুদ্রণ করে তবে তারপরে শেষ পর্যন্ত আসল ডাউনলোডটি এড়িয়ে যায়। অনুরূপ অপশন রয়েছে -sযা ইউআরএল আউটপুট দেয় না এবং অন্যথায় অনুরূপ বলে মনে হয়। আসুন ধরে নেওয়া যাক যদি এটি একই সময় নেয় তবে এটি যথেষ্ট পরিমাণে সমান; আমাদের এটি যাচাই করা দরকার।

$ t youtube-dl -v -s "$u"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', '-s', 'https://www.youtube.com/watch?v=k4J
[debug] Encodings: locale 'UTF-8', fs 'UTF-8', out 'UTF-8', pref: 'UTF-8'
[debug] youtube-dl version 2014.02.06
[debug] Python version 2.7.6 - Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14
[debug] Proxy map: {}
[youtube] Setting language
[youtube] k4JGSAmu4lg: Downloading webpage
[youtube] k4JGSAmu4lg: Downloading video info webpage
[youtube] k4JGSAmu4lg: Extracting video information
Time: 1.45s

ঠিক আছে, -sএকই সময় নেয় -gতাই পরীক্ষার জন্য তাদের প্রতিস্থাপন করা ঠিক আছে।
আরও আকর্ষণীয় হ'ল আমরা এখন আরও আউটপুট পেয়েছি। এবং এটি একটি আকর্ষণীয় সময় সহ মুদ্রিত হয়েছে: লাইনগুলি একে অপরের সাথে একইভাবে বিলম্বের সাথে মুদ্রিত হয়, সুতরাং দেখে মনে হয় তারা সেই ক্রিয়াগুলি সম্পর্কে যা বাস্তবে আমাদের সন্ধানের সময়টি নিচ্ছে।
বার্তাগুলি থেকে, কমপক্ষে দুটি ওয়েব পৃষ্ঠা ডাউনলোড করা হয় are তবে আমরা ধরে নিতে পারি যে "পৃষ্ঠা" শব্দের অর্থ একটি একক এইচটিটিপি অনুরোধ এবং একটি একক এইচটিএমএল নথি নয়।

আমরা কী শিখলাম?

মূল বক্তব্যটি হ'ল, প্রোগ্রামটির কাজটি আসলে সময় নেয়, এটি কোনও কিছুর জন্য অপেক্ষা করে না, বা ঝুলছে।
এছাড়াও, আমরা একই ধরণের সময় গ্রহণের একাধিক পদক্ষেপ দেখতে পাই। গণনা করার মতো অনেক কিছুই নেই, সুতরাং এটি কোনও উপায়ে নেটওয়ার্ক রাউন্ডট্রিপস যুক্ত হচ্ছে।
তার মানে, আমাদের সংযোগের বিলম্বটি কেবল এখানে গুরুত্বপূর্ণ। সংযোগের থ্রুপুটটি কেবল অপ্রাসঙ্গিক।

আপনি যদি আপনার ইন্টারনেট সংযোগটি দ্রুত তৈরি করেন তবে এটি ডাবল গতিতে ডেটা স্থানান্তর করতে পারে - এটি কোনও উপকারে আসবে না। তবে আপনি যদি আরও ভাল pingসময় পেতে পারেন , এটি এটি আরও দ্রুত করে তুলবে।
যদিও এটি আপনার ইন্টারনেট পরিষেবা সরবরাহকারীর কাছে 'পিং' বারের মতো নয়; পিং সময় সর্বদা ইউটিউবে যা গুরুত্বপূর্ণ তা - এবং পরিবর্তন করা সম্ভব নাও হতে পারে।

মজার বিষয় হল, পরবর্তী পদক্ষেপের জন্য, একটি ভিডিও ডাউনলোড করার জন্য, দ্রুত রেখার প্রয়োজনীয়তাগুলি একেবারে বিপরীত: বিলম্বিতা মোটেই প্রাসঙ্গিক নয় এবং থ্রুপুটটি সত্যই গুরুত্বপূর্ণ।


এখনও ক্লান্ত হয়নি?

সময়টি আসলে কী ব্যয় করছে তা আরও জানতে আরও বিশদ চান?
পরবর্তী পদক্ষেপটি HTTP সংযোগটি সনাক্ত করা হবে; আমি সন্দেহ করব যে এটি দুটির চেয়ে অনেক বেশি রাউন্ডট্রিপগুলি উদাহরণস্বরূপ পুনঃনির্দেশের জন্য দেখায়। আপনি ব্যবহার করতে পারেন wireshark, বা একটি লগিং এইচটিটিপি প্রক্সি, বা straceসংযোগ বা লেখার জন্য সিস্টেম কল গণনা করতে পারেন।

আজকের জন্য, আমরা উভয়ই নেটওয়ার্কিংয়ের খরগোশের গর্তের দিকে গভীর গভীরভাবে দেখেছি।


তো, এত দীর্ঘ সময়ের কারণ কী হতে পারে? এটি তি ধীর নেটওয়ার্ক সংযোগের কারণে?
ভরথ কুমার রেড্ডি বোজ্জা

এটি কত ধীর গতির উপর নির্ভর করে - প্রশ্নটি কী? আমার উদাহরণগুলির বিশদ জন্য এক মিনিট অপেক্ষা করুন, আমি সেগুলি লিখছি।
ভোলকার সিগেল

আমার প্রশ্ন হ'ল: বিলম্বটি ধীরে ধীরে নেটওয়ার্ক সংযোগের কারণে হচ্ছে?
ভরথ কুমার রেড্ডি বোজ্জা

হ্যাঁ, আংশিকভাবে প্রশ্নটি যত শোনাচ্ছে তার চেয়ে কম সহজ;) এটি সংযোগের থ্রুপুট সম্পর্কে নয়। বিলম্বিতা এখানে গুরুত্বপূর্ণ। আমি যা বলতে পারি তা থেকে কমপক্ষে তিনটি এইচটিটিপি রাউন্ডট্রিপস রয়েছে - তবে আরও বেশি হতে পারে। সমস্ত বিলম্ব এই সংখ্যাটি দ্বারা গুণিত হয়, এটি যোগ করে। আমি আপনার সংযোগ সম্পর্কে কিছুই জানি না; এটি ইউটিউব প্রান্তে ধীর হতে পারে, পরিমাপ না করে বলা শক্ত। নেটটিতে এমন আরও কিছু জিনিস চেষ্টা করুন যার জন্য আপনি জানেন যে এগুলি কত দ্রুত, এবং এটি ধীর বা স্বাভাবিক বলে মনে হচ্ছে কিনা check
ভোলকার সিগেল

সুতরাং, আমি কিছু বিশদ যুক্ত করেছি :)
ভলকার সিগেল


1

এর আর একটি কারণও থাকতে পারে। youtube-dlএকটি জিপ পাইথন অ্যাপ্লিকেশন হিসাবে বিতরণ করা হয়। যতবার আপনি এটি চালান, এটি এটি বের করে এবং তারপরে এটি চালায়।

আপনি unzipকমান্ড দিয়ে ম্যানুয়ালি এটি নিষ্কাশন করতে পারেন । তারপরে আপনি দৌড়াবেন __main__.pyতেমন চালান youtube-dl। পাই এর মতো স্বল্প চালিত কম্পিউটারে এটি আপনার কর্মক্ষমতা লক্ষণীয় করে তুলবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.