2016-05-17 61 views
7

我想獲取具有自定義網址的YouTube頻道的詳情,如https://www.youtube.com/c/pratiksinhchudasamaisawesome如何使用Youtube數據API獲取Youtube頻道詳情如果頻道有自定義網址

自定義渠道網址採用以下格式:https://www.youtube.com/c/{custom_channel_name}

我可以通過頻道ID和用戶名獲取YouTube頻道的詳細信息,沒有任何問題。不幸的是,我需要使用自定義頻道網址,這是我遇到此問題的唯一時間。

幾個月前我開發了我的應用程序,自定義頻道網址直到幾天前纔開始工作。現在,如果我嘗試使用自定義名稱獲取詳細信息,YouTube數據API不會爲YouTube自定義頻道網址返回任何內容。

要獲得此通道的詳細信息:https://www.youtube.com/user/thenewboston,例如,請求將是:

GET https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=thenewboston&key={YOUR_API_KEY} 

響應

200 
- SHOW HEADERS - 
{ 
"kind": "youtube#channelListResponse", 
"etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/8Dz6-vPu69KX3yZxVCT3-M9YWQA\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 5 
}, 
"items": [ 
    { 

    "kind": "youtube#channel", 
    "etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/KlQLDlUPRAmACwKt9V8V2yrOfEg\"", 
    "id": "UCJbPGzawDH1njbqV-D5HqKw", 
    "snippet": { 
    "title": "thenewboston", 
    "description": "Tons of sweet computer related tutorials and some other awesome videos too!", 
    "publishedAt": "2008-02-04T16:09:31.000Z", 
    "thumbnails": { 
    "default": { 
     "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s88-c-k-no-rj-c0xffffff/photo.jpg" 
    }, 
    "medium": { 
     "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s240-c-k-no-rj-c0xffffff/photo.jpg" 
    }, 
    "high": { 
     "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s240-c-k-no-rj-c0xffffff/photo.jpg" 
    } 
    }, 
    "localized": { 
    "title": "thenewboston", 
    "description": "Tons of sweet computer related tutorials and some other awesome videos too!" 
    } 
    } 
    } 
] 
} 

它完美。

現在我們必須讓這些渠道的細節:

然後我們得到:

GET https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=annacavalli&key={YOUR_API_KEY} 

響應

200 
- SHOW HEADERS - 
{ 
"kind": "youtube#channelListResponse", 
"etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/TAiG4jjJ-NTZu7gPKn7WGmuaZb8\"", 
"pageInfo": { 
    "totalResults": 0, 
    "resultsPerPage": 5 
}, 
"items": [ 
] 
} 

這可以使用API explorer輕鬆複製。

+0

看起來這可能是他們的API的錯誤。爲什麼不[報告](https://code.google.com/p/gdata-issues/issues/entry?template=YouTube%20(Defect%20Report)),看看Google是否會爲你解決這個問題? – Laurel

+0

這不是一個錯誤,而是一個缺失的功能。用戶名(來自舊時代,在YouTube和Google Plus集成之前)與自定義頻道標識符不同,所以預計'forUsername'過濾器不會以這種方式工作。 – jkondratowicz

回答

4

最簡單的解決方案,僅使用API​​,僅使用YouTube Data API的搜索:列表方法。根據我所能說的(請注意,這是來自我自己的研究,官方文檔對此主題沒有提及!),如果您使用自定義URL組件進行搜索,則使用「頻道」結果類型過濾器和「相關性」(默認)排序,首先結果應該是你要找的。

所以下面的查詢得到16個結果,第一個是你正在尋找的結果。我測試過的所有其他自定義頻道網址也是如此,因此我認爲這是實現此目的最可靠的方式。

GET https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=annacavalli&type=channel&key={YOUR_API_KEY} 

其他想法只是在自定義的網址,在那裏你可以在HTML代碼中的meta標籤中尋找的channelID刮YouTube頁面。但這是無效的,不可靠的和AFAIK違反YouTube使用條款。

編輯:好吧,它沒有返回小通道的結果,所以它根本不可靠。

+0

它幾乎是我們正在尋找的,除了「kind」:「youtube#searchResult」而不是「kind」:「youtube#activity」 –

+0

有沒有辦法獲得小通道的id? –

+0

@MahmoudHanafy除了我描述的方法外,我沒有看到從自定義url獲取channelId的其他方法。 – jkondratowicz

相關問題