内容
- YouTubeの急上昇ランキングをリストで確認することが可能
- 急上昇に登場したYoutuberのランキングを公開
- Youtuberのためになる情報を公開
この記事ではYoutubeWalkerの仕組みと使っている技術を公開します。現時点では難しい技術を使っておりません。将来的には記事にするまでのプロセスを自動化していきたいと思います。
何かのご参考になれば幸いです。
おおまかな仕様
仕組みも公開します。仕組みはいたってシンプルです。ざっくり、以下のような仕組みで情報を生成しています。
ざっくりした仕様
- (1)1日1回 Youtubeの急上昇サイトからhtmlの情報を取得する。(PHP + cron で取得)
- (2)取得したhtml をLinuxのコマンドで整える(チャンネルや視聴回数など必要なタグのみを取得)
- (3)Excelでテーブルを作成し、(2)の情報を追加。CSVで出力する
- (4)CSVをWordPressのプラグイン TablePressに読み込ませる。(完了)
使っている技術
YoutubeWalkerで公開しているYouTube急上昇ランキングの情報を取得するために以下の技術を使ってます。
PHP
指定したURLからhtmlの情報を取得。指定のファイル名でサーバに保存するようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/php <?php $url = "https://www.youtube.com/feed/trending?gl=JP&hl=ja"; //Webデータ取得先アドレス $url_en = "https://www.youtube.com/feed/trending"; //Webデータ取得先アドレス $myPath = __FILE__; date_default_timezone_set('Japan'); $put_file = $myPath.date('Y-m-d H:m:s')."ja.html"; $put_file_en = $myPath.date('Y-m-d H:m:s')."en.html"; $put_file_test = "test2.html"; $html = file_get_contents($url); //Webデータ取得 $html_en = file_get_contents($url_en); //Webデータ取得 var_dump( file_put_contents($put_file, $html) ); var_dump( file_put_contents($put_file_en, $html_en) ); ?> |
cron
PHPの実行に利用。UNIX系OSで標準的に利用される常駐プログラム(デーモン)です。
レンタルサーバを契約している場合、SSHで接続できない場合が有ります。
この場合はレンタルサーバの管理画面からcronの設定ができます。
実際の設定もコマンドラインとは違いわかりやすくなってます。
コマンドのところにPHPの実行ファイルのパスを指定してます。
shell script (Linux系のコマンド)
自動で取得したhtmlファイルから必要なタグ情報だけを取得するのに使います。
Youtubeのタグで視聴回数、チャンネル名、動画のURL等々だけを取得するのに grepコマンドを使います。
grep yt-lockup-content *ja.html > result.txt
Youtubeの場合はyt-lockup-content
タグに視聴回数などの情報が含まれています。
Linux系のコマンドは覚えておくと便利です。以下に使えるコマンドの一覧を纏めています。よろしければご活用ください。
仕事で使うLinux/UNIXコマンド一覧
続きを見る
Excelの関数
主に使っているのはMID関数 / FIND関数 / IF関数を使います。
例えば、以下のタグからタイトルを取得したい場合の方法。
spf-link " data-sessionlink="itct=CGIQ3DAYBSITCMTK4YOo0uECFchcmAodF1oCAyjpHjIIdHJlbmRpbmdaCkZFdHJlbmRpbmc" title="テスト用の動画あああ" aria-describedby="description-id-727350" dir="ltr">
タイトル名の開始位置と終了位置を求めて、それを切り出します。
タイトル名だけを取得したい場合は以下の通り、エクセルの関数で算出します。
step
1開始位置を算出
=FIND("title=",A2)+7
step
2終了の位置を取得
=FIND("aria-describedby",A2)-2
step
3タイトル名を取得
=MID(タグのセル,Step1の結果,Step2 - Step1)
Step1でタイトル名の開始位置(例115)を求め、Step2で開始位置の終了位置(例135)を算出しました。
115文字目から20文字(135 - 115 = 20)を切り取るとテスト用の動画あああ
が取得できます。
MID関数は(対象セル , 開始位置 , 文字数 ) で指定したセルから文字を抽出できます。
TablePress
Excelはシートの情報をCSV形式で保存することができます。「名前を付けて保存」を選択し、CSVでファイルを保存する。
あとは、そのCSVをWordPressのプラグインTablePressに読み込ませて完了です。
[blogcard url="https://ja.wordpress.org/plugins/tablepress/"]
まとめ
お粗末な仕組みではありますが、YoutubeWalkerは大した技術を利用していません。その代わりに、いくつかの技術を組み合わせて成り立っています。
浅く広く技術を抑えておくだけでも、なにかしらの資産を作ることは可能です。
まずはトライしてみることが大事です。