(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Youtube】コマンドからチャンネルのアイコンを取得する

スポンサーリンク

やりたいこと

Youtubeチャンネルのアイコン、例えば日テレのチャンネルページを見に行くと以下の左側にある丸い画像があります。

f:id:mtiit:20200216153744p:plain
左側にあるのがチャンネルアイコン

この画像を取得できるリンクをコマンドから抽出します。

やり方

# wget -O - <チャンネルURL> 2>/dev/null| grep channel-header-profile-image | grep src | cut -d"\"" -f4

以下は実際にURLを入れた例です。

# wget -O - https://www.youtube.com/channel/UCkLqBWFde2ZJZfqojgpDqyA 2>/dev/null| grep channel-header-profile-image | grep src | cut -d"\"" -f4
https://yt3.ggpht.com/a/AGF-l78oy_Xd0lpN3ZESHIB-1_83yXQ0f6R0z8emtw=s100-c-k-c0xffffffff-no-rj-mo

該当のURLへのアクセス結果

f:id:mtiit:20200216155700p:plain
チャンネルアイコン

以下、解説です。

解説

チャンネルページのHTML構造を調査すると、以下のような箇所が確認できました。

<img class="channel-header-profile-image" src="https://yt3.ggpht.com/a/AGF-l78oy_Xd0lpN3ZESHIB-1_83yXQ0f6R0z8emtw=s100-c-k-c0xffffffff-no-rj-mo" title="日テレ公式チャンネル" alt="日テレ公式チャンネル">

よってchannel-header-profile-imageで絞ると複数件ヒットしたのでsrcを付与して絞り

$ wget -O - https://www.youtube.com/channel/UCkLqBWFde2ZJZfqojgpDqyA 2>/dev/null | grep channel-header-profile-image | grep src
      <img class="channel-header-profile-image" src="https://yt3.ggpht.com/a/AGF-l78oy_Xd0lpN3ZESHIB-1_83yXQ0f6R0z8emtw=s100-c-k-c0xffffffff-no-rj-mo" title="日テレ公式チャンネル" alt="日テレ公式チャンネル">

あとはcutコマンドで抜き出しています。

ちなみに以下のようにチャンネル名やチャンネル説明を行っている箇所もHTMLから確認したので合わせて記しておきます。

<div id="microformat">
    <title>日テレ公式チャンネル</title>
    <link rel="canonical" href="https://www.youtube.com/channel/UCkLqBWFde2ZJZfqojgpDqyA">
    <meta property="og:site_name" content="YouTube">
    <meta property="og:url" content="https://www.youtube.com/channel/UCkLqBWFde2ZJZfqojgpDqyA">
    <meta property="og:title" content="日テレ公式チャンネル">
    <meta property="og:description" content="人気番組の予告動画を配信中!">
    <meta property="og:image" content="https://yt3.ggpht.com/a/AGF-l78oy_Xd0lpN3ZESHIB-1_83yXQ0f6R0z8emtw=s200-c-k-c0xffffffff-no-rj-mo">
...

以上、ご参考になれば幸いです。