【YouTube要約アプリ開発】第1回:APIってなんだろう? AIと始めるプログラミング!

AI

YouTubeで自分が見たい動画がなかなか見つからない、忙しくてたくさんの動画を見れない、といった経験はありませんか?

そんな課題を解決するために、APIを使ったプログラミングとAIを活用してみましょう!

AIをあなたのパートナーにすれば、プログラミングはもっと気軽に、そして楽しく始められます。

このシリーズ【YouTube要約アプリ開発】では、全4回を通して「YouTube動画を検索して、内容を要約してくれる」アプリ開発に挑戦します。
これにより、動画の要約を見て、興味がわいたものを効率的に視聴することができるようになります。

このアプリ開発は、一見難しそうに思えるかもしれませんが、APIという便利な仕組みを使えば、驚くほど簡単に実現できるんです!

APIには有料のもの(無料枠がある場合も多いです)や、完全に無料で使えるものがあります。

今回のシリーズでは、全て無料で使える範囲のAPIを利用していきます。

第1回となるこの記事では、まずプログラミングで色々なサービスと連携するのに必須の「API」というものが何かを学びます。

そして、AIと一緒に簡単なプログラムを動かして、「APIを使うってこんなに簡単なんだ!」と実感していただけたらと思います。

YouTube要約アプリ開発のシリーズ展開

このシリーズでは、YouTube動画の検索と要約アプリを完成させるために、以下のステップで進めていきます。

プログラミング学習の新しい形:AIをパートナーに!

「プログラミング=難しい」というイメージは、もう昔のものになりつつあります。その大きな理由の一つは、AIの進化です。

AI(ChatGPTやGeminiなど)は、あなたのプログラミング学習における強力な味方になってくれます。

  • 疑問を解決: 分からないコードの意味や、エラーの原因を質問すれば、分かりやすく教えてくれます。
  • コードの生成: やりたいことを伝えると、そのためのプログラムコードを書いてくれます。
  • アイデアの壁打ち: 何か作りたいもののアイデアについて相談すると、実現方法を一緒に考えてくれます。

AIは、一方的に教える先生というより、あなたのスキルアップを隣で手伝ってくれる「パートナー」です。

AIと対話しながら進めることで、一人で悩んで立ち止まる時間を減らし、楽しく学んでいくことができるでしょう。

プログラムとサービスを繋ぐ「API」って何?

さて、今回のテーマである「API」についてです。

API(Application Programming Interface)という言葉を聞いたことがあるでしょうか?

難しそうな響きですが、その役割はシンプルです。

APIとは、プログラムと、別のサービス(インターネット上の色々な機能や情報)を繋ぐ「窓口」や「仲介役」のようなものです。

もし、あなたが天気予報の機能を持ったアプリを作りたいと思ったとき、世界中の気象データを自分で集めてまとめるのは非常に大変です。

しかし、天気予報APIを利用すれば、そのAPIに「今日の東京の天気を教えて」とお願いするだけで、必要な情報を簡単に手に入れることができます。

このように、自分で全てをゼロから作ろうとすると膨大な時間と労力がかかりますが、APIを利用すれば、すでに用意されている便利な機能を簡単に組み込むことができるのです。

APIを利用する際は、そのサービスを提供しているサーバーにリクエストを送ることになります。

多くの人が同時に大量のリクエストを送ると、サーバーに大きな負荷がかかり、サービスの安定運用に影響を与える可能性があります。

そのため、APIを使う際には、必要以上に頻繁なリクエストを送らない、短時間に集中させないなど、サービス提供側に過度な負荷をかけないように配慮することが大切です。

プログラミング環境を準備しよう!

APIを使ったプログラミングを始めるのに、特別な準備はほとんどいりません。パソコンがあれば大丈夫です。

今回は、以下のツールを使って手軽に始めましょう。

  • Python: シンプルで読みやすく、AIとの連携も得意な人気のプログラミング言語です。
  • Google Colaboratory (Colab): Googleが無料で提供するサービスで、ウェブブラウザがあればPythonのコードを書いて実行できます。面倒な環境構築が不要なので、すぐに始められます。Googleアカウントで https://colab.research.google.co.jp/ にアクセス。「ノートブックを新規作成」を選べば、コードを書く画面(ノートブック)が開きます。
  • requestsライブラリ: PythonでAPIに「お願い」するための便利な道具です。Colabには最初から入っています。

これで準備は完了です!

APIを体験! 身近な郵便番号検索に挑戦!

APIプログラミングの第一歩として、最も身近で分かりやすい「郵便番号検索API」を使ってみましょう! 郵便番号を入れると、対応する住所を教えてくれるAPIです。

このAPIが最初におすすめな理由は、以下の通りです。

  • 結果が分かりやすい: 馴染みのある情報なので、プログラムの動作をイメージしやすいです。
  • 無料で手軽: APIキー不要で使えるサービスが多く、料金の心配なく試せます。
  • 使い方がシンプル: APIへのリクエスト方法が簡単です

今回は、ZipCloudさんが提供する無料APIを使わせていただきます (https://zipcloud.ibsnet.co.jp/)。

ZipCloudさんのAPIドキュメントを見ると、例えば「〒100-0001」の住所を知りたいときは、https://zipcloud.ibsnet.co.jp/api/search?zipcode=1000001 というURLにアクセスすれば良いと分かります。

URLの ?zipcode=1000001 の部分で、APIに郵便番号を伝えているんですね。

このURLにアクセスすると、APIは住所情報をコンピューターが扱いやすい形式(JSON形式)で返してくれます。都道府県、市区町村、町域などがデータとして含まれています。

AIと一緒にコードを書こう!

今回はColabのコード生成機能を使ってみます。

コード生成のリンクをクリックします。

以下のお願いを張り付けます。

Pythonを使って、ZipCloudの郵便番号検索APIから、郵便番号「1000001」の住所を取得して表示するコードを書いてください。APIのURLは https://zipcloud.ibsnet.co.jp/api/search で、郵便番号は「?zipcode=郵便番号」のように指定します。Colabでrequestsライブラリを使って実行します。

「Enter」キーを押すとコードを作成してくれました。
※必ずしも、同じコードを作成してくれるわけではありません。

「実行」ボタン(▶)をクリックしてみてください。

結果が表示されたでしょうか?

「郵便番号: 1000001」「住所: 東京都千代田区千代田」のように表示されたら成功です! プログラムがAPIを通して、インターネットから住所情報を取得できました!

APIを呼び出すコードの解説

今回のコードは以下のようになりました。

import requests # requestsライブラリを読み込む

api_url = "https://zipcloud.ibsnet.co.jp/api/search" # APIのURL
zip_code = "1000001" # 調べたい郵便番号

# APIに送るパラメータ(お願いする情報)を設定
# ZipCloud APIは「zipcode」という名前で郵便番号を受け付ける
params = {"zipcode": zip_code}

# APIにリクエストを送る(GETメソッドで情報を取得)
response = requests.get(api_url, params=params)

# APIからの応答をJSON形式に変換
data = response.json()

# 応答データを確認し、住所情報を取り出して表示
if data['status'] == 200 and data['results'] is not None:
    address_info = data['results'][0] # 結果リストの最初の要素
    prefecture = address_info['address1'] # 都道府県
    city = address_info['address2'] # 市区町村
    town = address_info['address4'] # 町域

    print(f"郵便番号: {zip_code}")
    print(f"住所: {prefecture}{city}{town}")
else:
    print(f"エラーが発生しました。郵便番号 {zip_code} の住所は見つかりませんでした。")
    print(f"ステータスコード: {data['status']}")
    if 'message' in data and data['message']: # 'message'キーの存在を確認
         print(f"メッセージ: {data['message']}")

上記のPythonコードは、requestsライブラリを使ってZipCloudの郵便番号検索APIにリクエストを送信し、その応答を受け取って処理する基本的な流れです。

  1. import requests: requestsライブラリを読み込み、HTTPリクエストを可能にします。
  2. api_url, zip_code: 利用するAPIのURLと、検索したい郵便番号を定義します。
  3. params = {"zipcode": zip_code}: APIに渡す情報を辞書形式で準備します。
  4. response = requests.get(api_url, params=params): APIにGETリクエストを送信します。paramsがURLに付加されます。
  5. data = response.json(): APIからの応答をJSON形式で受け取り、Pythonで扱えるデータに変換します。
  6. if data['status'] == 200 and data['results'] is not None:: API呼び出しが成功し、結果が得られたかを確認します。
  7. address_info = data['results'][0]: 結果データから住所情報を取り出します。
  8. prefecture, city, town: 住所情報から都道府県、市区町村、町域を抽出します。
  9. print(...): 取得した住所情報を表示します。
  10. elseブロック: エラーが発生した場合の処理を行います。

このコードで、APIから情報を取得する基本的な手順を体験できます。

もしエラーになってしまったら

「エラーの説明」というボタンがあるのでクリックしてみます。

画面右側にエラーの説明が表示され、修正すべきコードが表示されました。

この場合、’address4’として返されるデータは存在しないので、コードの該当箇所を’address3’に修正したら正常に動作しました!

広がるAPIの世界!

今回使った郵便番号検索APIは、数あるAPIの中のほんの一つです。

世の中には、天気、地図、ニュース、翻訳、そしてAIそのものなど、様々な情報や機能を提供するAPIが存在します。

いくつかおもしろそうなAPIを紹介します。

  • 犬・猫画像API: ランダムな犬の画像を一枚取得できます。日替わりで可愛い動物の画像を表示するアプリなどに使えます。 (RandomDog API)
  • お天気API: 特定の地域の天気予報や気温、湿度などの詳細な気象データを取得できます。オリジナルの天気アプリや、他のサービスと連携した通知機能などに活用できます。(OpenWeatherMap API – 無料枠あり)
  • ジョークAPI: ランダムなジョークや格言を取得できます。ちょっとした息抜き機能や、エンタメ系アプリに組み込むと面白いでしょう。(JokeAPI
  • 公共交通オープンデータセンター: 鉄道やバスなどの公共交通機関の運行情報や時刻表データなどを取得できる場合があります。乗り換え案内アプリや、地域の交通情報サービスなどに活用できそうです。(公式サイト
  • SNS関連API: X API (旧Twitter API) や LINE Messaging API など、SNSに関連したAPIも存在します。これらのAPIを使うと、SNS上での情報収集や自動投稿、LINE Botの開発など、様々なことができます。

また、これらのAPIを組み合わせることで、あなたのアイデアを実現できる、便利なプログラムを作ることができるかもしれません!

まとめと次のステップ

この記事では、APIの基本的な考え方を学び、AIと一緒に郵便番号検索APIを使った簡単なプログラムを作成しました。

  • APIは、プログラムとサービスを繋ぐ便利な窓口。
  • AIは、プログラミング学習をサポートする最強のパートナー。
  • Google Colaboratoryを使えば、すぐにプログラミングを始められる。

プログラミングはAIという強力なツールを使えば誰でも一歩踏み出すことができます。「APIを使うってこういうことか!」「AI、すごい!」と感じてもらえたら嬉しいです。

この記事を読んで「プログラミング面白い!」と感じたら、ぜひこのシリーズの続きに進んでください。

【YouTube要約アプリ開発】第2回では、YouTube Data APIを使って、実際にYouTube動画を検索するプログラムを作ります。

AIと共に、アプリ開発の歩みを進めましょう!

まずは、この記事で作ったプログラムで色々な郵便番号を調べてみたり、コードを少し変えて遊んでみたりしてください。

そして、次の第2回記事で、YouTube APIに挑戦してみましょう!

コメント

タイトルとURLをコピーしました