ইউটিউব প্লেলিস্টে ভিডিওগুলি গণনা করুন


12

চ্যালেঞ্জ

একটি ইউটিউব প্লেলিস্ট দেওয়া হয়েছে, এতে ভিডিওর সংখ্যা নির্ধারণ করুন।

ইনপুট / আউটপুট

প্লেলিস্টটি ইউআরএল হিসাবে দেওয়া হবে; উদাহরণস্বরূপ, https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC(এটি কোনও প্লেলিস্ট যা কোনও বন্ধু আমাকে কে-পপ শোনার চেষ্টা করার জন্য আমাকে পাঠিয়েছিল কারণ সে এতে আবেগযুক্ত এবং আমি এটি পছন্দ করি না: পি)

প্লেলিস্টের লিঙ্কটি ফর্মের https://www.youtube.com/playlist?list=<id>। ইনপুটটি URL নয়, আইডি নয়।

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

পরীক্ষার কেস

https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC -> 12
https://www.youtube.com/playlist?list=PLIEbITAtGBebWGyBZQlkiMXwt30WqG9Bd -> 114 OR 1

আরও পরীক্ষার কেস যোগ করতে নির্দ্বিধায়।


6
আপনাকে ইউটিউব প্লেলিস্টে ভিডিও গণনা করার জন্য আপনাকে একটি গ্রন্থাগার তৈরি করতে বলার স্নিগ্ধতম উপায় খুঁজে পাওয়ার জন্য হ্যাটস অফ।
স্টিভয়েসিয়াক

2
আমি কেবল একটি রিকরোল প্লেলিস্ট যুক্ত করার তাগিদকে প্রতিহত করেছি। অথবা "ড্যাঙ্ক মেমস" প্লেলিস্ট।
CAD97

অফ শিরোনাম: আমি ইউটিউব চ্যানেল যে সমস্ত ভিডিও অফার করবে তার সমস্ত উপায়ের তালিকাতে আমি আরও আগ্রহী। উত্স কোড এটিকে স্বাভাবিকভাবে অন্তর্ভুক্ত বলে মনে হচ্ছে না।
phil294

@ ব্লাউহির্ন এটি একটি আকর্ষণীয় ধারণা। আপনি এটি সম্পর্কে একটি চ্যালেঞ্জ করতে পারে।
হাইপারনিউটারিনো

উত্তর:


9

05 এ বি 1 ই , 22 বাইট

ধরে নিই যে ইউআরএলটি ছাড়াই পাস হয়েছে https://

কোড:

.w’®Ã-ƒ¢’¡`"<li>"¡2è#¬

05AB1E এনকোডিং ব্যবহার করে । ইন্টারনেট অ্যাক্সেসের কারণে অনলাইনে চেষ্টা করা যায় না।

ব্যাখ্যা:

.w                       # Receive implicit input and read all data from the url
  ’®Ã-ƒ¢’¡               # Split on the string "header-details"
          `              # Flatten once which leaves the last element on top of the stack
           "<li>"¡       # Split on the string "<li>"
                  2è     # Get the third element
                    #    # Split on spaces
                     ¬   # Retrieve the first element 

কমান্ড লাইনে চলার সময় এটিই আমি পেয়েছি:

এখানে চিত্র বর্ণনা লিখুন


1
কমান্ড লাইন কি ধরণের? আমি এর আগে দেখিনি।
Okx

2
@ ওক্সএক্স এটি সেমিডার
আদনান

এটা কিভাবে কাজ করে?
স্টিভয়েসিয়াক

@ স্টিভেনভ্যাসেলেলারো অনুস্মারকটির জন্য ধন্যবাদ, আমি একটি ব্যাখ্যা যুক্ত করেছি।
আদনান

6

স্কেল 2.12, 138 বাইট

print("""<li>.*?</li><li>(\d+).*?</li>""".r.findFirstMatchIn(scala.io.Source.fromURL(args(0),"utf-8").getLines.mkString("")).get.group(1))

এটিকে সংরক্ষণ করুন something.scalaএবং চালিত করুন scala something.scala {url}

এখানে চিত্র বর্ণনা লিখুন


6

জেএস (ইএস 6), 68 বাইট

x=>fetch(x).then(x=>x.text()).then(x=>alert(x.match(/(\d+) vi/)[1]))

চেষ্টা করার জন্য youtube.com এ আপনার কনসোলে এটি আটকান:

(x=>fetch(x).then(x=>x.text()).then(x=>alert(x.match(/(\d+) vi/)[1])))(prompt("Enter the URL"))

6

এমএটিএল , 15 বাইট

একটি ভুল খুঁজে পাওয়ার জন্য হাইপার নিউট্রিনোকে ধন্যবাদ , এখন সংশোধন করা হয়েছে।

Xi'wner">\n'XXn

ইনপুটটি একটি স্ট্রিং যা একক উদ্ধৃতিযুক্ত। আউটপুট হ'ল মোছা ভিডিওগুলির সংখ্যা।

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

এখানে চিত্র বর্ণনা লিখুন

কিভাবে এটা কাজ করে

Xi          % Read string containing URL and get contents as a string
'wner">\n'  % Push this string
XX          % Regexp matching. Gives a cell array with the matched strings
n           % Number of elements. Implicitly display

হা, চতুর রেইগেক্স!
রুবিক

আপনি কী পর্দা ক্যাপচার ব্যবহার করছেন?
ম্যাট

উইন্ডোজের জন্য @ ম্যাট লিসেক্যাপ
লুইস মেন্ডো

প্রশ্ন: আমি যদি একটি প্লেলিস্ট কল করি তবে কী হবে "wner"? এটি এখনও কাজ করবে?
হাইপারনিউটারিনো

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

4

বাশ + কার্ল + জিএনপি গ্রেপ, 32 বাইট

শেষ পর্যন্ত কোড গল্ফকে যেতে:

curl -s $1|grep -Po \\d+(?= vid)
  • curl -sকোনও অতিরিক্ত আউটপুট ছাড়াই ডাউনলোড করতে ব্যবহার করুন ।
  • আউটপুটটি গ্রেপ (পারল রেজেেক্স) এ পাইপ করুন যা কেবল মিলের আউটপুট দেয়
    • "ভিড" এগিয়ে যাওয়া প্রথম সংখ্যাটি মিলান

আমি কীভাবে এটি ব্যবহারিকভাবে করব তা থেকে এটি গল্ফ হয়।


চমৎকার প্রথম জমা!
হাইপারনিউটারিনো

3

পাওয়ারশেল, 55 বাইট

"$(iwr "$args")"-match'(?s)(\d+) vid'>$null;$matches[1]

সাইটে ব্রাউজ করুন। এইচটিএমএল উত্স যা বস্তুকে স্ট্রিংয়ে রূপান্তর করুন। রেজেক্সের সাথে "ভিড" এর আগে থাকা একটি সংখ্যা রয়েছে এমন স্ট্রিংটি পার্স করুন।

উভয় পরীক্ষার ক্ষেত্রে লজিক কাজ করে।


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