2017-08-09 101 views
0

我正在使用youtube-node npm查找所有視頻列表。該文檔位於鏈接https://www.npmjs.com/package/youtube-node從nodejs的YouTube頻道獲取結果

但我想,我的搜索只顯示特定通道即結果如果我搜索你好,那麼它只能給AdeleVEVO YouTube頻道的結果。 我找不到適合的文檔。我不想使用oauth證書,我只想使用youtube-node npm。

+0

首先嚐試使用youtube的本地API來查看是否有可能。之後,您可以使用一些節點包在應用程序中進行復制 –

回答

1

在包文檔中,您有樣本搜索,請確保您在params參數中包含所需值的對象,在您的案例中,請參閱youtube api doc,您需要指定channelId。試試這種方式:

var YouTube = require('youtube-node'); 

var youTube = new YouTube(); 

youTube.setKey('AIzaSyB1OOSpTREs85WUMvIgJvLTZKye4BVsoFU'); 

youTube.search('World War z Trailer', 2, {channelId: <string value of the channelId>}, function(error, result) { 
    if (error) { 
    console.log(error); 
    } 
    else { 
    console.log(JSON.stringify(result, null, 2)); 
    } 
}) 

;

0

如果您是該頻道的所有者,則可以使用YouTube API的forMine參數。設置此參數將限制搜索授權用戶的視頻。以下是the official documentation的樣本。

重要提示:不要使用youtube-node模塊對於這一點,特別是因爲 - 在我的經驗,至少 - 在addParam()函數不可靠的參數添加到請求(例如,在我的代碼我叫youtube_node.addParam('safeSearch', 'strict');,但受限制的視頻仍將返回結果中。)

請改爲直接使用YouTube數據API,如this quickstart example中所示。

// Sample nodejs code for search.list 

    function searchListMine(auth, requestData) { 
    var service = google.youtube('v3'); 
    var parameters = removeEmptyParameters(requestData['params']); 
    parameters['auth'] = auth; 
    service.search.list(parameters, function(err, response) { 
     if (err) { 
     console.log('The API returned an error: ' + err); 
     return; 
     } 
     console.log(response); 
    }); 
    } 

    //See full code sample for authorize() function code. 
    authorize(JSON.parse(content), {'params': {'maxResults': '25', 
        'forMine': 'true', 
        'part': 'snippet', 
        'q': 'fun', 
        'type': 'video'}}, searchListMine); 
相關問題