YouTube Data API v3でチャンネルのユーザー名からチャンネルIDを取得する

下記はYouTube Data APIを利用したチャンネルのユーザー名からチャンネルIDを取得するコードの例。

下記の例のようにリソースのプロパティに id、フィルタに forUsername パラメータを指定して $youtube->channels->listChannels() でAPIリクエストを行えばチャンネルIDを取得できる。

(ユーザー名のURLの例)
https://www.youtube.com/user/YouTubeJapan
(IDに基づくURLの例)
https://www.youtube.com/channel/UCrXUsMBcfTVqwAS7DKg9C0Q

require_once '/path/to/google-api-php-client/vendor/autoload.php';

$client = new Google_Client();
$client->setDeveloperKey("_YOUR_API_KEY_");
$youtube = new Google_Service_YouTube($client);

$user = "YouTubeJapan"; // https://www.youtube.com/user/YouTubeJapan
$response = $youtube->channels->listChannels('id', ['forUsername' => $user]);

$channelId = "";
if (!empty($response['items']))
{
  $channelId = $response['items'][0]['id'];
  var_dump($channelId);
  /* var_dump 出力
  string(24) "UCrXUsMBcfTVqwAS7DKg9C0Q"
  */
}
else
{
  exit("Error: Failed to get channel ID.\n");
}

なお、APIを利用しなくても、Google検索でチャンネル名を検索して、検索結果のリンクからチャンネルのページに行けば、チャンネルIDに基づくURLに飛ばしてくれることが多い。

ただ、チャンネルIDに基づくURLに辿り着けない場合もあるので、APIを利用したチャンネルIDの取得方法を知っておくと役立つ。