2015-04-22 153 views
3

我跟着this Google video說明書和其他地方的:使用靜態API密鑰 YouTube數據API V3 - playlistItems返回playlistNotFound

  • 獲得播放列表ID爲上傳的

    • 連接到V3 API頻道,使用傳統頻道ID(例如「GoogleDevelopers」)
    • 使用該播放列表的playlistItems端點來檢索上傳到該YouTube帳戶的視頻列表。

    前兩個階段工作,我能夠獲得信道/播放列表ID,但playlistItems每次都返回playlistNotFound(我曾與幾個不同的YouTube帳戶進行了測試。)

    我我一直試圖仔細檢查錯別字 - 我找不到任何錯誤的請求。

    任何想法,或任何人都可以重現該問題?

    API呼叫範例(使用在他們的視頻中顯示的Google代碼信道) - 你需要generate your own API key來測試這一點:

    https://www.googleapis.com/youtube/v3/channels?key=[myAPIkey]&forUsername=GoogleDevelopers&part=id

    響應:

    { 
    "kind": "youtube#channelListResponse", 
    "etag": "\"IHLB7Mi__JPvvG2zLQWAg8l36UU/9Uu_LJKSiIBlJOBZoZLkKcjhUUE\"", 
    "pageInfo": { 
        "totalResults": 1, 
        "resultsPerPage": 5 
    }, 
    "items": [ 
        { 
        "kind": "youtube#channel", 
        "etag": "\"IHLB7Mi__JPvvG2zLQWAg8l36UU/JgZIwrlCnsd1wzjssCxaCFp8mRU\"", 
        "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw" 
        } 
    ] 
    } 
    

    試圖獲取播放列表中的第一個視頻:

    https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=1&key=[myAPIkey]&playlistId=UC_x5XG1OV2P6uZZ5FSM9Ttw

    { 
    "error": { 
        "errors": [ 
        { 
        "domain": "youtube.playlistItem", 
        "reason": "playlistNotFound", 
        "message": "Not Found", 
        "locationType": "parameter", 
        "location": "playlistId" 
        } 
        ], 
        "code": 404, 
        "message": "Not Found" 
    } 
    } 
    

    注意:我生成了一個服務器密鑰,因爲這要在服務器上運行。但我正在瀏覽器中進行測試(將IP地址列入白名單)。這應該不會造成任何問題嗎? (到目前爲止,沒有認證錯誤)。

  • +0

    嘿@威廉,即使即時通訊面臨同樣的問題。你能解決嗎? – Adithya

    +0

    @Adithya no - 我最終做的是使用RSS訂閱源:https://www.youtube.com/feeds/videos.xml?channel_id=xxxxxxxxxxxxxxxxxxxxxxxx - 我*設法讓v3數據API工作來檢索具體視頻的詳細信息,格式如下:\t https://www.googleapis.com/youtube/v3/videos?part=snippet&id=xxxxxxxxxxxxx&key=yyyyyyyyyyyyyyy –

    回答

    1

    William, 您用作播放列表ID的是頻道ID,用於獲取帶有ID的播放列表列表,您需要將contentDetails添加到部件參數中。

    https://www.googleapis.com/youtube/v3/channels?part=contentDetails&maxResults=50&forUsername=GoogleDevelopers&key=<APIKEY> 
    

    響應:

    { 
        kind: "youtube#channelListResponse", 
        etag: ""iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/rGUGLTaUoy_huV1Qfc0wvulpr7M"", 
        pageInfo: { 
        totalResults: 1, 
        resultsPerPage: 50 
        }, 
        items: [ 
        { 
         kind: "youtube#channel", 
         etag: ""iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/Il2dF5SRdky6_tqanN3hNuDyfxc"", 
         id: "UC_x5XG1OV2P6uZZ5FSM9Ttw", 
         contentDetails: { 
         relatedPlaylists: { 
          uploads: "UU_x5XG1OV2P6uZZ5FSM9Ttw" 
         }, 
         googlePlusUserId: "111395306401981598462" 
         } 
        } 
        ] 
    } 
    

    然後使用 「UU_x5XG1OV2P6uZZ5FSM9Ttw」 作爲上傳播放列表,以便下次調用看起來就像是:

    https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=1&playlistId=UU_x5XG1OV2P6uZZ5FSM9Ttw&key=<APIKEY> 
    

    響應:

    { 
        kind: "youtube#playlistItemListResponse", 
        etag: ""iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/AqAMzBB7CuVjpCKtQDHbbIvjtMU"", 
        nextPageToken: "CAEQAA", 
        pageInfo: { 
        totalResults: 3761, 
        resultsPerPage: 1 
        }, 
        items: [{ 
        kind: "youtube#playlistItem", 
        etag: ""iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/qjqde7mm3USo4TmUrxDN8KdbyaQ"", 
        id: "UUj6hVp42BfAXGn9SkmnI_HudylmOycmdp", 
        contentDetails: { 
         videoId: "tjmRUgUca1g" 
        } 
        }] 
    } 
    
    +0

    我們如何知道id是來自頻道或播放列表? 我遇到類似'https:// stackoverflow.com/q/46703569/4680523'的問題 – manish1706

    相關問題