Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

はじめに

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ファイルを選択してください。
beta-dot-custom-vision.appspot.com_vision_datasets_create_project=automl-mnist (1).png

6. 学習

無料で学習できます。
beta-dot-custom-vision.appspot.com_vision_datasets_train_dataset=ICN3734265783997282363&model=ICN3119082969681404154&project=automl-mnist.png

結果

MEGWIN TV は80%の精度で10万再生できるサムネイルかどうか識別できることがわかりました。
beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN3734265783997282363&model=ICN3119082969681404154&project=automl-mnist.png

マックスむらい は81%の精度で20万再生できるサムネイルかどうか識別できることがわかりました。
beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN6072659906232381245&model=ICN1468243788934747461&project=automl-mnist.png

おわりに

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away