動画・配信のサムネイルを使って、VTuberのモザイクアートを作ります。
とは言えモザイクアートの作成自体はツールを使うだけなので、ここで書くのはYouTube Data APIの使い方ぐらいです。
流れとして、APIで動画データ取得→動画データ内のサムネURLから画像を取得→取得した画像を使ってモザイクアート作成といった感じです。
今回対象とするVTuberさんは不条 理さんです。
https://twitter.com/AyaFujo
https://www.youtube.com/channel/UCnWY-6vdj_UaKDwGI5oLDZw
素敵な個人Vさんで、おすすめです。
##動画データの取得
まず、YouTube Data APIを使って動画データを取得します。
準備方法は調べればいくらでも出てくるので、今回は割愛します。
from apiclient.discovery import build
import json
import time
# APIを使うための情報を設定
DEVELOPER_KEY = "**取得したAPIキー**"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
item_list = []
search = youtube.search().list(
part = "snippet",
# チャンネルIDはYouTubeホーム画面URLから取得、↓の***の部分
# https://www.youtube.com/channel/***/featured
channelId = "**チャンネルID**",
maxResults = 50 # 一回で取得する動画情報数
)
data = search.execute()
# 一回じゃ取りきれないので何回か実行する
while True:
item_list = item_list + data["items"]
print(len(item_list))
print(data["pageInfo"])
# 取りきったら終了
if "nextPageToken" not in data:
break
time.sleep(1)
search = youtube.search().list_next(search, data)
data = search.execute()
# 取得したデータを保存
with open('movieData.json', 'w', encoding="utf8") as f:
json.dump(item_list, f, ensure_ascii=False)
ざっくりこんな感じで動画データが取得できます。
##画像の取得
続いて画像の取得です。
先ほど取得したJSONファイルですが、snippet→thumbnailsにサムネの情報が入ってます。
画像サイズごと別れており、その下のurlに画像のURLがあります。
データ構造も調べれば出てくるので割愛します。
画像の保存方法としてurllibライブライを使います。
これを使うことで、URLを指定して画像を保存することができます。
import json
import urllib.request
# さっきのJSONファイル
json_file = open('movieData.json', 'r')
data = json.load(json_file)
json_file.close()
i = 1
for line in data:
# 画像ファイル名
image_file = "samune/" + str(i) + ".jpg"
i += 1
# URLの場所を指定して取得
url = line["snippet"]["thumbnails"]["medium"]["url"]
print(line["snippet"]["title"])
# urllibライブライを使って画像を保存
tgt = urllib.request.urlopen(url).read()
with open(image_file, mode='wb') as f:
f.write(tgt)
##モザイクアートの作成
これもプログラムでサクッとできればよかったのですが、そこまでの技術は無いので...。
最後はツールの力を借ります。
AndreaMosaicというツールになります。
使い方はリンクを貼るのでそちらから。
https://aprico-media.com/posts/3742
##完成したモザイクアート
元画像はツイッターのアイコンを使いました。
小さくして薄目で見ると見える気がする!
以上、ちょっと変わったファンアートを作りたくて遊んだ話でした。