Youtube Playlist में वीडियो गिनें


12

चुनौती

एक YouTube प्लेलिस्ट को देखते हुए, इसमें वीडियो की संख्या को आउटपुट करें।

आई / ओ

प्लेलिस्ट को URL के रूप में दिया जाएगा; उदाहरण के लिए, 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
YouTube प्लेलिस्ट में वीडियो की गिनती करने के लिए लोगों से आपको लाइब्रेरी बनाने के लिए कहने का तरीका खोजने के लिए सलाम।
स्टेवोइसेक

2
मैंने सिर्फ एक रिकरोल प्लेलिस्ट को जोड़ने के आग्रह का विरोध किया। या "डंक मेम्स" प्लेलिस्ट।
सीएडी 97

विषय से बाहर: मैं एक तरह से सभी वीडियो में रुचि रखता हूँ जो कि एक यूट्यूब चैनल को पेश करना है। स्रोत कोड इसे स्वाभाविक रूप से शामिल नहीं करता है।
दर्शन २

@ ब्लौहिरन यह एक दिलचस्प विचार है। हो सकता है कि आप इस बारे में कोई चुनौती दे सकते हैं।
हाइपरएनुट्रीनो

जवाबों:


9

05AB1E , 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
किस प्रकार की कमांड लाइन है? मैंने इसे पहले नहीं देखा है।
ओकेक्स

2
@ ऑक्स इट सीडर
अदनान

यह कैसे काम करता है?
स्टेवोइसक

@StevenVascellaro अनुस्मारक के लिए धन्यवाद, मैंने एक स्पष्टीकरण जोड़ा है।
अदनान

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

MATL , 15 बाइट्स

अब गलती सुधारने के लिए हाइपर न्यूट्रिनो का शुक्रिया ।

Xi'wner">\n'XXn

इनपुट एकल उद्धरण के साथ संलग्न एक स्ट्रिंग है। आउटपुट अनलेटेड वीडियो की संख्या है।

यहाँ एक उदाहरण दो परीक्षण मामलों के साथ चलाया गया है। १३ जून २०१ 2017 तक, प्लेलिस्ट में अविकसित वीडियो की संख्या क्रमशः १२ और १ है।

यहाँ छवि विवरण दर्ज करें

यह काम किस प्रकार करता है

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

हा, चतुर रेगेक्स!
माणिक

आप स्क्रीन पर कब्जा करने के लिए क्या उपयोग कर रहे हैं?
मैट

@Matt LICEcap विंडोज के लिए
लुइस Mendo

प्रश्न: अगर मैं एक प्लेलिस्ट बनाऊं तो क्या होगा "wner"? क्या यह अभी भी काम करेगा?
हाइपरनेत्रिनो

@HyperNeutrino अच्छा बिंदु। मैंने इसे सुधारा है। BTW, पहली सूची में वीडियो की संख्या बदल गई है
लुइस मेंडो

4

बैश + कर्ल + ग्नू क्रेप, 32 बाइट्स

अंत में कोड गोल्फ को जाना:

curl -s $1|grep -Po \\d+(?= vid)
  • उपयोग curl -sबिना किसी अतिरिक्त आउटपुट के डाउनलोड करने के लिए ।
  • Grep (perl regex) के लिए आउटपुट को पाइप करें जो केवल मैच का आउटपुट देगा
    • "Vid" को प्राप्त करने वाले पहले नंबर का मिलान करें

यह इस बात से जुड़ा है कि मैं इसे व्यावहारिक रूप से कैसे करूंगा।


अच्छा पहला प्रस्तुत!
हाइपरएन्यूट्रीनो

3

पॉवरशेल, 55 बाइट्स

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

साइट पर ब्राउज़ करें। ऑब्जेक्ट को स्ट्रिंग में कनवर्ट करें जो html स्रोत है। उस स्ट्रिंग को पार्स करें जिसमें रेगेक्स के साथ "vid" नंबर हो।

तर्क दोनों परीक्षण मामलों के साथ काम करता है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.