Pro Yearly is on sale from $80 to $50! »

Python で YouTube API 使って競合(?)を分析してみる

C302e84057a922dce0ecbe80207e3fcc?s=47 mu_zaru
October 01, 2020

Python で YouTube API 使って競合(?)を分析してみる

配信動画はこちら
https://www.youtube.com/watch?v=ziKpwLL52hI&feature=youtu.be

もし良かったらムーザルちゃんねるのチャンネル登録お願いします!
https://www.youtube.com/channel/UCLPHXwLp90A5R69Eltxo-sg

Twitter でもプログラミングネタをつぶやいているのでフォローお待ちしております。
ムー
https://twitter.com/mu_vpoe
zaru
https://twitter.com/zaru

C302e84057a922dce0ecbe80207e3fcc?s=128

mu_zaru

October 01, 2020
Tweet

Transcript

  1. YouTube Live (2020.09.24 Thur. 21:00~)

  2. 話す人 現役のエンジニア二人 赤貝が好きな CTO と デザイン勉強中のエンジニア @mu_vpoe 最近の仕事は figma で画

    面設計をつくることで す。英語の勉強してる。 ムー zaru @zaru CTO, Love 赤貝, JavaScript, Firebase, Web Components. Twitter フォロー お願いします!
  3. 話すこと Python 便利わざ バッチ処理の設計 競合(?)分析

  4. Python は いいぞ まず、皆さんにお伝えしたいこと

  5. 記法がシンプルで覚えやすい Python いいところ インデントがブロックの代わり ブロックを { } で囲む必要がない セミコロンがない 特殊記号が少ない

  6. 誰が書いても似た構造になりやすい Python いいところ Python の哲学「たった一つの良いやり方」という のがあり、同じことを色んなやり方でできる Perl とは逆の方針。 There should

    be one-- and preferably only one --obvious way to do it. https://www.python.org/dev/peps/pep-0020/ ただ言語自体も進化しているので、その時のたった一つの良いやり方自 体は変わっていくため、混在している現状はある…。
  7. The Zen of Python

  8. Python で 驚いた事

  9. id, list は変数名で使わない Python で id や list は組み込み関数であり、かつ 変数で同じ名前を使ってもエラーにはならない。な

    ので避けた方が良い名前を覚える うっかり使っちゃいそうなもの id, list, str, help, hash min, max, sum, zip dir(__builtins__) で確認 オブジェクトの識別値を調べる id() を上書きしてしまえる…
  10. デフォルト引数は共通 関数のデフォルト引数は、関数定義時に評価される ので呼び出すたびに同じ変数が使いまわされる この to は1回しか初期化されない [12, 42] が返ってくる!

  11. 同じ式でも型で挙動が変わる タプルの中に za があるかどうか カンマをつければタプルに () で囲むだけではタプルにならない ので文字列扱いになっている。 zaru の中に

    za 文字が存在するか のチェック
  12. Python は いいぞ いろいろあるけど、それでも

  13. Python で API を叩く

  14. シンプルすぎて説明がない requests ライブラリが定番

  15. YouTube Data API YouTube に関する操作やデータの取得ができる API。無料で使える - 公開されているチャンネルや動画に関する情報の取得 - 認証したユーザのアクティビティ

    - 動画のアップロードなど含む操作 今回はチャンネル API と検索 API 、動画 API の3つを使って情報を 収集する。 チャンネル API https://www.googleapis.com/youtube/v3/channels 検索 API https://www.googleapis.com/youtube/v3/search 動画 API https://www.googleapis.com/youtube/v3/videos
  16. バッチ処理の設計

  17. バッチ処理は役割に分ける 役割に応じてバッチを分割する データ取得 データ活用 バッチ処理を作るときは、データフローを作り、処理内容ごとの役割を明確にす る事が大事。横着して、1つの処理の中で複数の役割をするのは避けた方が良 い。 バッチ内部で一気に処理 データ取得 データ整形

    データ活用 データ整形 ⭕ ❌
  18. 再実行コストが高い バッチ内部で一気に処理 データ取得 データ整形 データ活用 ❌ 1つの処理で全て行おうとすると、例えばデータ整形処理中にエ ラーが発生すると全ての処理が止まり、やり直しになってしまう。 データ取得自体は正常にできているのに、やり直すのはもったいな い。

    最初からやり直し
  19. 再実効性とデバッグ容易性 役割に応じてバッチを分割する データ取得 データ活用 データ整形 取得データ 整形データ グラフなど ❌ ここだけやり直し

    バッチを分割し、バッチの成果物を残す事で後続のバッチが失敗し ても再実行のコストが低く、かつ中間データを確認できるのでデ バッグなどもやりやすい。 処理途中のデータ が見られるからデ バッグが楽〜
  20. 競合(?)分析

  21. pandas + Bokeh で可視化 pandas でデータ整形して Bokeh に渡すだけで、 インタラクティブなグラフが簡単に作れる

  22. ありがとうございました! 次回は... 未定! 質問感想など呟いていただけると嬉しいです! - ハッシュタグ #mu_zaru - ツイッター情報 @mu_vpoe

    , @zaru チャンネル登録 Good ボタン お願いします! ムーザルちゃんねる