【ITニュース解説】How I Built a Freelance Python Script That Earned Me $3,100 in 3 Months
2025年09月15日に「Medium」が公開したITニュース「How I Built a Freelance Python Script That Earned Me $3,100 in 3 Months」について初心者にもわかりやすく解説しています。
ITニュース概要
週末の実験から始めたPythonプログラムが、3ヶ月で3,100ドルの収入を得る副業になった経緯を紹介する。プログラミングスキルが個人の収益化に繋がる可能性を示す具体例だ。
ITニュース解説
あるプログラマーがどのようにしてPythonスクリプトを開発し、わずか3ヶ月で3,100ドル(約40万円以上)もの副収入を得たのか、その道のりを紹介する。この経験は、プログラミングスキルが単なる趣味で終わらず、具体的なビジネスチャンスに繋がることを示している。
物語の始まりは、YouTubeチャンネルの成長分析という、あるニッチなニーズの発見だった。多くのYouTuberやマーケターは、自身のチャンネルや競合のチャンネルがどのように成長しているかを知りたいと考えるが、YouTubeが提供する公式のデータだけでは不十分な場合が多い。手作業でデータを集めるのは時間も手間もかかるため、この面倒な作業を自動化できないかと考えるのが自然な流れだ。
この自動化のアイデアを実現するために選ばれたプログラミング言語はPythonだった。Pythonは文法がシンプルで学習しやすく、データ処理やWeb操作に役立つ豊富なライブラリが揃っているため、このようなプロジェクトには最適な選択肢と言える。
まず、プログラマーはYouTubeの公式API(Application Programming Interface)の利用を検討した。APIとは、アプリケーション同士が連携するための窓口のようなもので、これを使えばYouTubeから直接チャンネルのデータを取得できると期待したのだ。しかし、YouTube Data API v3には厳しいレート制限(短時間にアクセスできる回数の上限)があり、分析したいチャンネルの数が多くなると、その制限にすぐに引っかかってしまう問題があった。さらに、もし制限を超えるような使い方をする場合は追加費用が発生する可能性もあり、コスト面でも懸念があったため、APIの利用は断念することになった。
そこで次の解決策として浮上したのが「Webスクレイピング」という技術である。Webスクレイピングとは、WebサイトのHTML(Webページの構造を記述する言語)情報をプログラムで自動的に取得し、その中から必要なデータだけを抽出する手法だ。今回は、YouTubeチャンネルの統計情報を詳細に提供している「Social Blade」というWebサイトをターゲットに設定した。このサイトは、チャンネルの登録者数や動画視聴回数の推移などをグラフや数値で公開しており、まさに求めていた情報源だった。
Webスクレイピングの実装には、主に三つのPythonライブラリが活用された。
一つ目は「Requests」ライブラリである。これは、Webサイトの情報をプログラムで取得するためのツールだ。プログラマーはRequestsを使ってSocial Bladeの特定のページにアクセスし、そのページのHTMLコンテンツを丸ごと取得した。Webブラウザでページを見るのと同じように、プログラムがWebサーバーに「このページを見せてください」とお願いし、その応答としてHTMLデータを受け取るイメージだ。
二つ目は「BeautifulSoup」ライブラリである。Requestsで取得したHTMLデータは、人間が見る分には問題ないが、プログラムがそのままでは情報として扱いにくい。HTMLはタグと呼ばれる記号で囲まれたテキストの集まりであり、その中から特定のデータ(例えば、登録者数の数値や視聴回数のグラフデータなど)を探し出す必要があるからだ。BeautifulSoupは、このHTMLデータを解析し、まるで辞書や地図のように扱いやすくしてくれる。プログラマーはBeautifulSoupを使って、Social BladeのHTML構造を調べ、必要な情報がどのタグの中に、どのような形で格納されているかを特定した。そして、そのタグやCSSセレクター(HTML内の要素を指定するためのルール)を使って、狙ったデータを正確に抽出していった。
三つ目は「Pandas」ライブラリである。BeautifulSoupで抽出したデータは、まだバラバラな状態のことが多い。例えば、あるチャンネルの登録者数、視聴回数、アップロード動画数といった複数のデータがそれぞれ個別に抽出される。Pandasは、これらのデータを表形式でまとめて整理したり、加工したりするのに非常に便利なツールだ。Excelのシートのような形でデータを扱うことができ、欠損値の処理、データの型変換、集計など、多岐にわたるデータ操作が可能だ。プログラマーはPandasを使って抽出したデータを整理し、最終的にCSV(Comma Separated Values)ファイルとして出力した。CSVファイルは、表形式のデータを保存する一般的な形式で、Excelや他のデータ分析ツールで簡単に開いて利用できる。
スクリプトの開発を進める中で、エラーハンドリングも重要な要素として取り入れられた。Webスクレイピングでは、ターゲットサイトのレイアウト変更や、一時的なサーバーエラー、存在しないページへのアクセスなど、様々な予期せぬ問題が発生する可能性がある。これらの問題に適切に対応できるよう、プログラムにエラー検出とそれに対する処理(例えば、エラーメッセージの表示や処理のスキップなど)を組み込むことで、スクリプトの安定性と信頼性が向上した。また、コードを機能ごとに分割して関数にする「モジュール化」や、入出力パスなどの設定値をJSONファイル(設定情報を記述する一般的な形式)で管理することで、スクリプトの再利用性やメンテナンス性も高めた。
こうして完成したスクリプトは、YouTubeチャンネルの成長分析レポートを自動生成できる強力なツールとなった。次に、このツールをどのように収益化するかが課題となった。プログラマーは「Upwork」というフリーランス向けのプラットフォームを利用して、クライアントを探すことにした。Upworkでは、世界中の企業や個人がさまざまなプロジェクトをフリーランスに依頼しており、「YouTubeチャンネル分析」のようなニッチな仕事も存在した。
幸運にも、プログラマーはすぐに最初のクライアントを見つけることができた。そのクライアントは、毎週特定のYouTubeチャンネルの成長レポートを必要としており、プログラマーの開発したスクリプトがまさにそのニーズに合致したのだ。最初はプロジェクトごとの支払いだったが、スクリプトの信頼性と提供されるレポートの質の高さが評価され、やがて月額契約へと移行した。これにより、プログラマーは継続的かつ安定した収入を得られるようになった。結果として、このシンプルなPythonスクリプトはわずか3ヶ月で3,100ドルもの収入をもたらしたのである。
この経験から得られた教訓は、システムエンジニアを目指す初心者にとっても非常に価値がある。
第一に、ニッチな問題解決の重要性だ。誰もが抱えるような大きな問題だけでなく、特定の個人やグループが抱える小さな、しかし面倒な問題を解決するツールは、ビジネスとして成立する可能性を秘めている。 第二に、Webスクレイピングの強力な代替手段としての価値である。公式APIがない場合や、APIの制限が厳しい場合でも、WebスクレイピングはWeb上の公開情報を活用するための有効な手段となり得る。ただし、Webスクレイピングはターゲットサイトの利用規約を遵守し、サーバーに過度な負荷をかけないよう配慮する必要がある。 第三に、複雑なシステムでなくても、実用的な価値があれば収益化できるということだ。このスクリプトは非常に高度なAIや大規模なデータベースシステムを伴うものではなく、特定の課題を解決するためのシンプルなツールだった。しかし、それが具体的な価値を提供したことで、実際に収入に繋がった。 最後に、継続的な学習と改善の重要性だ。一度作ったスクリプトも、Webサイトの構造変更などで動かなくなることがある。常に学び続け、コードを改善していく姿勢が、プログラマーとしての成長を促し、より多くの機会を生み出す。
この物語は、プログラミングスキルが単なる技術習得に留まらず、具体的な問題解決、そしてビジネスへと繋がる可能性を秘めていることを示している。システムエンジニアを目指す者にとって、身近な不便やニーズに目を向け、それをコードで解決しようと試みることが、成長への第一歩となるだろう。