Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
YouTube API を使ってみた
Search
wai-doi
October 29, 2021
Programming
0
60
YouTube API を使ってみた
wai-doi
October 29, 2021
Tweet
Share
More Decks by wai-doi
See All by wai-doi
無料で将棋を楽しめるサービス5選
yusukedoi
0
49
Other Decks in Programming
See All in Programming
単体テストの始め方/作り方
toms74209200
0
470
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
380
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
FormFlow - Build Stunning Multistep Forms
yceruto
1
170
Development of an App for Intuitive AI Learning - Blockly Summit 2025
teba_eleven
0
120
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
820
Perlで痩せる
yuukis
1
690
WindowInsetsだってテストしたい
ryunen344
1
180
2度もゼロから書き直して、やっとブラウザでぬるぬる動くAIに辿り着いた話
tomoino
0
160
Effect の双対、Coeffect
yukikurage
5
1.4k
CSC307 Lecture 17
javiergs
PRO
0
120
AIネイティブなプロダクトをGolangで挑む取り組み
nmatsumoto4
0
110
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Statistics for Hackers
jakevdp
799
220k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rails Girls Zürich Keynote
gr2m
94
14k
Code Review Best Practice
trishagee
68
18k
The Pragmatic Product Professional
lauravandoore
35
6.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
GitHub's CSS Performance
jonrohan
1031
460k
Agile that works and the tools we love
rasmusluckow
329
21k
Transcript
YouTube API を使ってみた @wai_doi 2021/10/29 技術交流会 1
自己紹介 • 名前 ◦ 土居裕典(@wai_doi) • 経歴 ◦ 新卒3年目 •
趣味 ◦ 将棋 ◦ YouTobe ◦ スマホゲーム 2
YouTube APIで解決したいこと 3
クラッシュロワイヤル とは • 通称 クラロワ • リアルタイム対戦型の新感覚カードゲーム • 8枚のカードでデッキを組む •
世界中のプレイヤーと対戦 4
Stats Royale チャンネル • クラロワの上位プレイヤー の試合がアップされている チャンネル • ひとつの動画にひとつの試 合
• 1日50本以上アップされて いる https://www.youtube.com/channel/UC698QxCg2KVVWh4G6NQLX_w 5
観たい動画のいつもの探し方 チャンネルのアップロード済み動 画の一覧から探す 6
特定カードが使われる動画だけを観たい! ゴーレム サムネイル画像に写っているカードで 観たい動画をいつも選んでいる ( 面倒😥) 7
特定カードが使われる動画だけを観たい! ゴーレム サムネイル画像に写っているカードで 観たい動画をいつも選んでいる ( 面倒😥) 8 観たい動画を簡単にカードで検索で きるようにしたい!!
それぞれの動画の概要欄を見ると... 9 使われるデッキとカードが 載っている !!😀
YouTube APIを使って アプリケーション開発をしてみた 10
Stats Royaleの動画検索Railsアプリケーションの構想 • Stats Royale がアップロードした動画を対象に • YouTube APIを使って動画ごとの概要欄のテキストを取得する •
概要欄のテキストからその動画で使われるデッキとカードを抜き出す • 動画、デッキ、カードを関連付けてデータベースに持っておく • 指定したカードで検索して、そのカードが使われる動画だけを一覧で表示する 11
設計したデータモデル 動画 デッキ カード ✳ 2 ✳ 8 12
YouTube API で利用できるリソース • アクティビティ • チャンネル • 再生リストの項目 •
再生リスト • 検索 • サブカテゴリ • サムネイル • 動画カテゴリ • 動画 • ... https://developers.google.cn/youtube/v3/docs?hl=ja 13
YouTube APIの制限 • 10000 Queries / 日 • Query =
リクエスト回数 * コスト • list が一番コストが安い • insert, updateがコストが高い https://ichiro-kun.com/post/2452/ 14
googleapis/google-api-ruby-client を利用した https://github.com/googleapis/google-api-ruby-client 15
YouTube APIを使った処理フロー 1. チャンネルIDで channels.list を叩く 2. チャンネル情報を取得し、アップロードされた動画の playlist IDを抽出する
3. playlist ID で playlistItems.list を叩く 4. 動画の情報を取得し、Video IDや概要欄のテキストなどを抽出する 16
1. チャンネルIDで channels.list を叩く • チャンネルIDはチャンネルURLの末尾にある チャンネルID 17
channels.list のレスポンス https://developers.google.com/youtube/v3/docs/channels/list itemsの中 18
1. チャンネルIDで channels.list を叩く idパラメータ (チャンネルID) part パラメータ (items の中で欲しいkeyを与える)
19
2. チャンネル情報を取得し、アップロードされた動画の playlist IDを抽出する チャンネルがアップロードした 動画の playlist ID を抽出 20
playlistItems.list のレスポンス https://developers.google.com/youtube/v3/docs/playlistItems/list itemsの中 21
3. playlist ID で playlistItems.list を叩く part パラメータ (items の中で欲しいkeyを与える)
playlistID パラメータ (再生リストのID) pageTokenパラメータ (ページの指定) 次のページのトークンを抽出 22
4.動画の情報を取得し、Video IDや概要欄のテキストなど を抽出する 概要欄のカードの文字列を抽出する 23
以降の処理は割愛します 概要欄のデッキとカードを抽出する • 抽出した情報をDBに保存する • 動画を一覧表示 • 動画の個別のページで埋め込み動画が観られる • 詳細はリポジトリ
https://github.com/wai-doi/clash-royale-youtube-searcher 24
アプリケーションの画面 25 動画個別ページ 動画一覧ページ
デモ https://clash-royale-youtube-searcher.herokuapp.com/ 26
今後追加してみたい機能 • 複数のカードで検索できるようにしたい • あるカード VS あるカードの対戦で検索できるようにしたい 27
ご清聴ありがとうございました! 28