YouTube एपीआई के साथ वीडियो विचारों की संख्या कैसे प्राप्त करें?


84

प्रश्न बहुत सरल है। YouTube एपीआई के साथ वीडियो विचारों की संख्या कैसे प्राप्त करें?

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

कार्य सरल है, लेकिन मैं बड़ी संख्या में वीडियो पर उस क्वेरी का उपयोग करना चाहूंगा। क्या उनके Youtube API को कॉल करने और पाने का कोई तरीका है? (facebook http://api.facebook.com/restserver.php?method=links.getStats&urls=developers.facebook.com )


आप ऐसा करने के लिए केवल जावास्क्रिप्ट का उपयोग करना चाहते हैं?
विक्टर

कुछ भी जो अच्छी तरह से काम करता है। जैसा कि मैंने कहा, मुझे बड़ी संख्या में वीडियो पर बहुत बार क्वेरी करनी चाहिए।
पूर्व

असंबंधित: LOL @ facebook यदि आप एक restserver.phpस्पष्ट रूप से बात याद आ रही है।
रूडी

यह YouTube डेटा API v3 नमूना API Url freakyjolly.com/youtube-data-v3-api-sample-api-get-url
कोड जासूस

जवाबों:


75

मुझे लगता है, सबसे आसान तरीका है, JSON प्रारूप में वीडियो जानकारी प्राप्त करना है। यदि आप जावास्क्रिप्ट का उपयोग करना चाहते हैं, तो jQuery.getJSON () का प्रयास करें ... लेकिन मुझे PHP पसंद है:

<?php
$video_ID = 'your-video-ID';
$JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_ID}?v=2&alt=json");
$JSON_Data = json_decode($JSON);
$views = $JSON_Data->{'entry'}->{'yt$statistics'}->{'viewCount'};
echo $views;
?>

Ref: Youtube API - किसी एक वीडियो के बारे में जानकारी प्राप्त करना


5
धन्यवाद, आपने मुझे लगभग ३० मिनट खुदाई करने के लिए बचा लिया :)
मार्टिन

यह आपे से बाहर हो सकता है ?? मेरे सभी वीडियो इस पद्धति के माध्यम से गिने जाते हैं, जो कि वीडियो घड़ी पृष्ठ पर दिखाए गए एक अच्छे 100 या पीछे हैं
mdskinner

Youtube लोकप्रिय वीडियो के लिए विचारों को विलंबित करता है, वास्तव में इसके बारे में बहुत कुछ नहीं है।
डायलन क्रॉस

3
FYI करें इस अप्रैल 20 वीं, 2015 के आसपास तोड़ दिया और केवल रिटर्न के लिए जानकारी देखते youtube.com/watch?v=UKY3scPIMd8 को जो अंक youtube.com/devicesupport । मूल रूप से, v3 एपीआई का उपयोग करें।
रयान ड्यूवल

1
ERR_INVALID_RESPONSE
एलेक्सी श।

66

आप नए YouTube डेटा API v3 का उपयोग कर सकते हैं

यदि आप वीडियो पुनः प्राप्त करते हैं, तो आँकड़े भाग में दृश्य शामिल है :

डॉक्टर से:

https://developers.google.com/youtube/v3/docs/videos#resource

आंकड़े.व्यूकाउंट / जितनी बार वीडियो देखा गया है।

आप इस जानकारी को क्लाइंट साइड में, या क्लाइंट साइड में कुछ लाइब्रेरी का उपयोग करके प्राप्त कर सकते हैं:

https://developers.google.com/youtube/v3/libraries

और आप डॉक्टर से एपीआई कॉल का परीक्षण कर सकते हैं:

https://developers.google.com/youtube/v3/docs/videos/list

नमूना:

निवेदन:

GET https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Q5mHPo2yDG8&key={YOUR_API_KEY}

Authorization:  Bearer ya29.AHES6ZSCT9BmIXJmjHlRlKMmVCU22UQzBPRuxzD7Zg_09hsG
X-JavaScript-User-Agent:  Google APIs Explorer

उत्तर:

200 OK

- Show headers -

{
 "kind": "youtube#videoListResponse",
 "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/dZ8K81pnD1mOCFyHQkjZNynHpYo\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "id": "Q5mHPo2yDG8",
   "kind": "youtube#video",
   "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/4NA7C24hM5mprqQ3sBwI5Lo9vZE\"",
   "statistics": {
    "viewCount": "36575966",
    "likeCount": "127569",
    "dislikeCount": "5715",
    "favoriteCount": "0",
    "commentCount": "20317"
   }
  }
 ]
}

2
अब यह जाने का रास्ता है, V2 गूगल एपीआई मार्च 2014 के बाद से हटा दिया गया है अतिरिक्त टिप: एक इस तरह एपीआई के कई भागों को पुनः प्राप्त कर सकते हैं: part=statistics,contentDetails। इसके अलावा यहां तक ​​कि V2 एपीआई ज्यादातर मामलों में काम करने लगता है, यह कुछ वीडियो पर नहीं है।
कुंडली

10

एपीआई के संस्करण 2 को मार्च 2014 से हटा दिया गया है, जो इनमें से कुछ अन्य उत्तरों का उपयोग कर रहा है।

YouTube API v3 में JQuery का उपयोग करते हुए, वीडियो से विचार प्राप्त करने के लिए एक बहुत ही सरल कोड स्निपेट है।

आपको पहले Google डेवलपर कंसोल के माध्यम से एक एपीआई कुंजी बनाने की आवश्यकता होगी ।

<script>
  $.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Qq7mpb-hCBY&key={{YOUR-KEY}}', function(data) {
    alert("viewCount: " + data.items[0].statistics.viewCount);
  });
</script>

8

जावास्क्रिप्ट का उपयोग करके URL से Youtube वीडियो दृश्य प्राप्त करने के लिए यहां एक छोटा कोड स्निपेट है

नीचे दिए गए कोड का डेमो

    function videoViews() {
var rex = /[a-zA-Z0-9\-\_]{11}/,
    videoUrl = $('input').val() === '' ? alert('Enter a valid Url'):$('input').val(),
    videoId = videoUrl.match(rex),
    jsonUrl = 'http://gdata.youtube.com/feeds/api/videos/' + videoId + '?v=2&alt=json',
   embedUrl = '//www.youtube.com/embed/' + videoId,
   embedCode = '<iframe width="350" height="197" src="' + embedUrl + '" frameborder="0" allowfullscreen></iframe>'


//Get Views from JSON
$.getJSON(jsonUrl, function (videoData) {
    var videoJson = JSON.stringify(videoData),
        vidJson = JSON.parse(videoJson),
        views = vidJson.entry.yt$statistics.viewCount;
    $('.views').text(views);
});

//Embed Video
$('.videoembed').html(embedCode);}

महान डेमो के लिए धन्यवाद!
गारेथ

5

क्यों सार्वजनिक HTML के एक हिस्से को पुनः प्राप्त करने के लिए किसी भी एपीआई कुंजी का उपयोग करना!

सरलतम यूनिक्स कमांड लाइन प्रदर्शनकारी उदाहरण, कर्ल , जीआरईपी और कट का उपयोग करके ।

curl https://www.youtube.com/watch?v=r-y7jzGxKNo | grep watch7-views-info | cut -d">" -f8 | cut -d"<" -f1

हां, इसे पूरा html पेज मिलता है, इस नुकसान का अनगिनत फायदों से कोई मतलब नहीं है।


4

आप इसका भी उपयोग कर सकते हैं:

<?php
    $youtube_view_count = json_decode(file_get_contents('http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2&alt=json'))->entry->{'yt$statistics'}->viewCount;
    echo $youtube_view_count;
    ?>

आप और अधिक समझा सकते हैं कि आपने किस भाषा का उपयोग किया है।
राहिल वज़ीर

यह एपीआई के पुराने v2 का उपयोग करता दिख रहा है जो अब पदावनत हो गया है।
साइमन ईस्ट

3

उपयोग करना youtube-dlऔर jq:

views() {
    id=$1
    youtube-dl -j https://www.youtube.com/watch?v=$id |
        jq -r '.["view_count"]'
}

views fOX1EyHkQwc

2

Google PHP API क्लाइंट का उपयोग करें: https://github.com/google/google-api-php-client

यहां केवल एक वीडियो आईडी के लिए YouTube आँकड़े प्राप्त करने के लिए एक छोटा सा मिनी क्लास है। यह जाहिर तौर पर एपी के शेष का उपयोग करके एक टन बढ़ाया जा सकता है: https://api.kdyby.org/class-Google_Service_YouTube_Video.html

class YouTubeVideo
{
    // video id
    public $id;

    // generate at https://console.developers.google.com/apis
    private $apiKey = 'REPLACE_ME';

    // google youtube service
    private $youtube;

    public function __construct($id)
    {
        $client = new Google_Client();
        $client->setDeveloperKey($this->apiKey);

        $this->youtube = new Google_Service_YouTube($client);

        $this->id = $id;
    }

    /*
     * @return Google_Service_YouTube_VideoStatistics
     * Google_Service_YouTube_VideoStatistics Object ( [commentCount] => 0 [dislikeCount] => 0 [favoriteCount] => 0 [likeCount] => 0 [viewCount] => 5 )  
     */
    public function getStatistics()
    {
        try{
            // Call the API's videos.list method to retrieve the video resource.
            $response = $this->youtube->videos->listVideos("statistics",
                array('id' => $this->id));

            $googleService = current($response->items);
            if($googleService instanceof Google_Service_YouTube_Video) {
                return $googleService->getStatistics();
            }
        } catch (Google_Service_Exception $e) {
            return sprintf('<p>A service error occurred: <code>%s</code></p>',
                htmlspecialchars($e->getMessage()));
        } catch (Google_Exception $e) {
            return sprintf('<p>An client error occurred: <code>%s</code></p>',
                htmlspecialchars($e->getMessage()));
        }
    }
}


1

यहाँ एक उदाहरण है कि मैं अपने TubeCount अनुप्रयोग में इस्तेमाल किया ।

मैं JSON परिणाम को फ़िल्टर करने के लिए फ़ील्ड पैरामीटर का भी उपयोग करता हूं, इसलिए केवल उन फ़ील्ड्स की आवश्यकता होती है जिन्हें मुझे वापस कर दिया गया है।

var fields = "fields=openSearch:totalResults,entry(title,media:group(yt:videoid),media:group(yt:duration),media:group(media:description),media:group(media:thumbnail[@yt:name='default'](@url)),yt:statistics,yt:rating,published,gd:comments(gd:feedLink(@countHint)))";

var channel = "wiibart";

$.ajax({
    url: "http://gdata.youtube.com/feeds/api/users/"+channel+"/uploads?"+fields+"&v=2&alt=json",
    success: function(data){

        var len = data.feed.entry.length;

        for(var k =0; k<len; k++){
            var yt = data.feed.entry[k];
            v.count = Number(yt.yt$statistics != undefined && yt.yt$statistics.viewCount != undefined ? yt.yt$statistics.viewCount : 0);
        }
    }
});

Alt = json क्वेरी परम जोड़ने के लिए धन्यवाद। डिफ़ॉल्ट प्रतिक्रिया परमाणु है
जोनाथन मोरालेस वेलेज़

1

यहां PHP में एक सरल कार्य है जो एक YouTube वीडियो के विचारों की संख्या देता है। इसके लिए कार्य करने के लिए आपको YouTube डेटा API कुंजी (v3) की आवश्यकता होगी। यदि आपके पास कुंजी नहीं है, तो YouTube डेटा API पर निःशुल्क प्राप्त करें

//Define a constant so that the API KEY can be used globally across the application    
define("YOUTUBE_DATA_API_KEY", 'YOUR_YOUTUBE_DATA_API_KEY');

function youtube_video_statistics($video_id) {
    $json = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id=" . $video_id . "&key=". YOUTUBE_DATA_API_KEY );
    $jsonData = json_decode($json);
    $views = $jsonData->items[0]->statistics->viewCount;
    return $views;
}

//Replace YOUTUBE_VIDEO_ID with your actual YouTube video Id
echo youtube_video_statistics('YOUTUBE_VIDEO_ID');

मैं अपने आवेदन में इस समाधान का उपयोग कर रहा हूं और यह आज की तरह काम कर रहा है। इसलिए एपीआई कुंजी और यूट्यूब वीडियो आईडी प्राप्त करें और उन्हें उपरोक्त कोड (दूसरी पंक्ति और अंतिम पंक्ति) में बदल दें और आपको जाने के लिए अच्छा होना चाहिए।


1

PHP JSON

$jsonURL = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=$Videoid&key={YOUR-API-KEY}&part=statistics");
$json = json_decode($jsonURL);

पहले इसको अनकम्फर्टेबल करके देखें

//var_dump(json);

और विचारों की गणना इस प्रकार करें:

$vcounts = $json->{'items'}[0]->{'statistics'}->{'viewCount'};


1

आप JQuery का उपयोग कर सकते हैं, Your-Api-Keyनीचे दिए गए कोड से स्ट्रिंग को बदलने के लिए मत भूलना , अपने स्वयं के एपी कुंजी Google डेवलपर्स कंसोल को खोजने के लिए लिंक का पालन करें

<script>
    $.getJSON('https://www.googleapis.com/youtube/v3/videospart=statistics&id=Qq7mpb-hCBY&key=Your-Api-Key', function(data) {
        console.log("viewCount: ", data.items[ 0 ].statistics.viewCount);
    });
</script>

-7

यह संभवतः वह नहीं है जो आप चाहते हैं, लेकिन आप निम्नलिखित का उपयोग करके जानकारी के लिए पृष्ठ को स्क्रैप कर सकते हैं:

document.getElementsByClassName('watch-view-count')[0].innerHTML

1
जब एपीआई बदलने वाला हो तो Youtube चेतावनी देता है। लेकिन यह वेबसाइट पर डेवलपर्स के साथ कोई अनुबंध नहीं है। तो यह एक अच्छा विचार नहीं है
FRAGA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.