Я использую API данных Youtube, и мне нужно знать, есть ли способ найти, что канал youtube является проверенным.
Есть ли поле для проверки того, проверен ли канал YouTube на Youtube API?
Ответ 1
Правильное решение, вам нужно сделать это в два этапа:
ШАГ 1. Используя API данных YouTube v3 и ressource channel.list
с параметрами:
part:contentDetails
id:CHANNEL_ID // or forUsername:USERNAME
Это вывод:
{
"kind": "youtube#channel",
"etag": "\"CuSCwMPVmgi8taDtE2LV6HdgkN0/Mu0u2QSDqnFcBvUF5X21CnGSEac\"",
"id": "UCa10nxShhzNrCE1o2ZOPztg",
"contentDetails": {
"relatedPlaylists": {
"uploads": "UUa10nxShhzNrCE1o2ZOPztg"
},
"googlePlusUserId": "105350456099841048474"
}
}
Больше на: https://developers.google.com/youtube/v3/docs/channels/list
ШАГ 2 с API Google Plus, получите googlePlusUserId
из предыдущего запроса и используйте ресурс plus.people.get
с параметром:
userId:105350456099841048474
В результате будет показано:
"isPlusUser": true,
"plusOneCount": 215098,
"circledByCount": 12621,
"verified": true,
Подтвержденное поле - это то, что вы хотите!
Подробнее: https://developers.google.com/+/web/api/rest/latest/people/get
Ответ 2
просто столкнулся с этим сегодня, и хотя channelBranding API-интерфейса V3 youtube выглядит многообещающе, я не мог заставить его вернуться, если идентификатор учетной записи/канала пользователя был подтвержден или нет
поэтому я создал довольно хромой PHP скрипт, который использует поиск модели DOM для непосредственного изучения html. для возврата true, если присутствует следующий элемент.
<a href="//support.google.com/youtube/bin/answer.py?answer=3046484&hl=en" class="qualified-channel-title-badge" target="_blank">
На сегодняшний день (9/8/2014) проверенный пользователь вернет true.
<?php
function isVerified($youtubeUser)
{
$youtubeUser = trim($youtubeUser);
$url = '\''."https://www.youtube.com/user/".$youtubeUser.'\'';
$url = "https://www.youtube.com/user/".$youtubeUser ;
$Verified = false;
echo "<BR>looking at $url ";
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
$dom = new DOMDocument;
@$dom->loadHTML($html);
foreach ( $dom->getElementsByTagName('a') as $link ) {
$myVar = $link->getAttribute('class');
$search = "qualified-channel-title-badge";
$found=false;
$found = strpos($myVar, $search);
if ( $found !== false) {
$Verified = true; //echo "<BR><font color=green>TRUE</font>";
} else {
$Verified = false; //echo "<BR><font color=red>FALSE</font>";
}
}
if ( $Verified ) {
return true;
} else {
return false;
}
}
?>
Пока, пока!
Ответ 3
Если может быть возможно проверить выведенный статус канала YouTube через флаг status.longUploadsStatus, который может быть разрешен или разрешен, поскольку в настоящее время для этой функции требуется, чтобы связанная учетная запись youtube была проверена.
источник: https://developers.google.com/youtube/v3/docs/channels
Ответ 4
RE: решение mpgn, обратите внимание, что существует различие между проверкой учетной записи G + и проверяется ли один или несколько учетных записей каналов YouTube. Возможно, что учетная запись имеет более одного канала, и каждый из этих каналов проверяется независимо, а для каналов не проверяется, даже если проверена соответствующая учетная запись G +.
Как показывает @Paul Blakely, лучший способ сделать это - проверить флаг status.longUploadStatus, за https://developers.google.com/youtube/v3/docs/channels
Ответ 5
В проверенных каналах присутствует класс "has-badge".
Работа в 2018 году:
<?php
$key = 'has-badge';
$channel = file_get_contents('https://www.youtube.com/...');
if( stripos($channel, $key) !== FALSE )
echo "Verified";
else
echo "Not Verified";
?>