動画のサムネイルから視聴回数を予測するAI


概要

動画のサムネイルから視聴回数を予測してみました。ようするに、どんなサムネイルを作れば、視聴回数が上がるか事前に分かるようになるかもしれません。

はじめに

AutoMLを使うにあたって試したいと思いやってみました。

準備

今回は MEGWIN TV さんと マックスむらい さんのチャンネルを使用しました。(動画数が多いため)
ソースコードは、 https://github.com/GitHub30/predict_yt_views にあります。(糞コード)

1. チャンネルの動画一覧をすべて取得する。

チャンネルの動画一覧を取得しようとすると、APIの制限に引っかかるので、代わりにチャンネルのplaylistを使って動画一覧を取得します。

print_video_ids.py
playlistId = 'UUp_RW49IudjKEw_yal7tfFw'
def print_video_ids(next_page_token=''):
    response = build('youtube', 'v3', developerKey=DEVELOPER_KEY).playlistItems().list(
        part="snippet",
        playlistId=playlistId,
        maxResults=50,
        pageToken=next_page_token
    ).execute()

    for item in response.get('items', []):
        print(item['snippet']['resourceId']['videoId'])

    if 'nextPageToken' in response:
        print_video_ids(response['nextPageToken'])

print_video_ids()

2. サムネイルをダウンロードする。

for video_id in `python print_video_ids.py`
do
    wget https://img.youtube.com/vi/${video_id}/mqdefault.jpg -O $video_id.jpg
done

3. 視聴回数を取得する。

response = build('youtube', 'v3', developerKey=DEVELOPER_KEY).videos().list(
    part="statistics",
    id=video_id
).execute()

for item in response.get('items', []):
    if 'viewCount' in item['statistics']:
        print(item['statistics']['viewCount'])

4. zipファイルを作成する。

今回は、視聴回数が MEGWIN TV は100000回を超えているかいないか、 マックスむらい は200000回を超えているかいないかでデータセットを作成しました。

megwin/
  ├ a_0/
  │   └ 2mBRwwNA8zw.jpg
  │   └ r29uWKBm67I.jpg
  │          ︙
  │   └ 6s56MRsGk6k.jpg
  └ a_100000/
      └ kNyTatPkSbM.jpg
      └ ghgbFMZgZP8.jpg
             ︙
      └ B4kZl_UBsgY.jpg
megwin.zip
maxmurai/
  ├ a_0/
  │   └ y88JG09nXYM.jpg
  │   └ u9fqddk61o0.jpg
  │          ︙
  │   └ v5eG3Gb0Bzo.jpg
  └ a_200000/
      └ ntnOdOsOjBI.jpg
      └ 7gUS4IF3sY4.jpg
             ︙
      └ NmBCbUVPcAU.jpg
maxmurai.zip

5. データセットの作成

先程、作ったzipファイルを選択してください。

6. 学習

無料で学習できます。

結果

MEGWIN TV は80%の精度で10万再生できるサムネイルかどうか識別できることがわかりました。

マックスむらい は81%の精度で20万再生できるサムネイルかどうか識別できることがわかりました。

おわりに

投稿時からいいサムネを作れば、より多くのひとに見てもらえるようになるかもしれないですね。
サムネイルが視聴回数に影響することがわかったので、次はどんなサムネイルを作ればYouTubeの急上昇にのるのかや高評価や低評価の割合を予測してみたいです。今回は画像だけだったので、タイトルも解析してアンサンブルしたら精度が上がるか検証してみたいです。