
コマンドラインツール開発のすすめ
はじめまして!ドットインストールでアルバイトをしている大学生 I です。
これまで Python を使った機械学習とコンピュータビジョンを勉強してきた経験を活かして、ドットインストールでは業務効率化ツールの開発を手掛けています。
業務効率化を行う方法はいくつかありますが、その中でも、コマンドラインツールが便利です。Webアプリケーションのような GUI のあるツールだとマウスで複数回、操作する必要がありますが、コマンドを使用すれば、1 回の操作で終えることができます。
コマンドラインと聞くと「黒い画面…」と腰が引けてしまう方もいらっしゃると思いますが、使いこなせるとすごく便利です。そこで今回は、私がこれまでに作ったツールを紹介してみたいと思います。
レッスンタイトル画像を自動生成するツール
レッスン動画の最初に出てくるタイトル画像ですが、これまでは Figma を使って以下のように画像を作っていました。
レッスンに関する情報を担当者からもらう
そこにあるタイトルやサブタイトルの情報をコピー
Figma でテンプレートにテキストを入れ込む
画像をエクスポートして担当者に渡す
これが 1、2 回であれば、手間に感じないかもしれません。しかし、ドットインストールではたくさんのレッスンを提供しており、このプロセスを何十回も繰り返すとなると面倒です。実際、担当者とのやりとりも含め、数十分はかかる業務でした。

そこでそのあたりを効率化するツールを Python で作りました。具体的にはgspread を使用して、Google スプレッドシート内の必要な情報を取得し、OpenCV を用いて画像を作成しています。
このツールをリリースしたあとは、担当者がコマンド一発で画像を生成できるようになりました(かかる時間は 2, 3 秒です!)。
AIによる文字起こしツール
ドットインストールで提供している動画の文字起こしですが、もともとはスタッフが手作業で行っていました。
文字起こしファイルにはタイムスタンプも入れる必要があり、もろもろのチェックを含めると、1 本の 3 分動画を処理するのに 20 〜 30 分かかることもしばしばでした。
そこで動画ファイルから音声を抽出し、OpenAI が提供する Whisper API を用いて文字起こしをするためのツールを開発しました。
Whisper では、データの時間や文脈の情報をもとにセグメントごとに出力し、各セグメントには開始時間もつけてくれます。そのデータをもとに弊社規定のフォーマットに変換するプログラムを書いたところ、作業時間が大幅に短縮されました。

ドットインストールの動画は技術的な用語が多いので、完璧とまではいかないのですが、1 動画の文字起こしにかかる時間は数分から10分程度まで短縮することができました。
文字起こしの表記ゆれチェックツール
以上の文字起こしを行う際には、技術的な用語に際して
コントロールキーは Ctrl キー と表記する
Javascript は JavaScript と表記する
など、いくつかの注意点があります。しかし、複数人で作業していると、表記ゆれが発生してしまいやすくなります。
そこで間違えやすい表記をスプレッドシートにまとめてみんなで注意するようにしていたのですが、人力では限界がありました。
また、上で紹介した Whisper は表記ゆれまではチェックしてくれないので、そのあたりを自動でチェックするためのツールを Python で開発しました。

全ての不備を検出することは不可能ではありますが、人による確認と、ツールによる確認の両方を取り入れることで、以前よりも劇的に間違いを減らすことができました。
GitHubでのIssue投稿を自動化
ドットインストールでは毎週の定例会議があります。そのための GitHub Issue をこれまでは手作業で投稿していました。
ただ、タイトルに会議の日時をいれたり、ローテーションで変わる担当をアサインするのが面倒だったり、日付と曜日を間違えていたり、といったこともありました。

そこで GitHub Actions と Python を使ってそのあたりの業務を効率化してみました。特定の曜日になると、3 週間後の Issue を適切なタイトル、適切な担当情報とともに自動で投稿してくれるので「あの会議の Issue 立てたかな…?」とストレスを感じることがなくなって快適です。
さいごに
今回は、社内で使用している業務効率化を目的としたコマンドラインツールについて紹介してみました。これらのツールは全て Python で書いています。
プログラミングを学ぶ方は、HTML / CSS / JavaScript を使った Web 制作に興味を持たれる方が多いのですが、Python を学べばコマンド一発で面倒な作業を片付けてくれるツールが開発できて便利です。
さらに、Python はデータ分析や機械学習でも使用できて、非常に汎用性が高い言語です。ドットインストールでは Python のレッスンも提供しているので、こうしたツールの開発に興味がある方にはとてもおすすめです!