PythonでYoutubeの動画情報を取得してみる|サンプルコード・解説付き

Python

以下は、Pythonのライブラリ「Tkinter」と「Pytube」を使用して、YouTube動画の情報を取得するためのアプリケーションのコード例です。このアプリケーションは、ユーザーがYouTubeのURLを入力すると、その動画のタイトルや説明、視聴回数などの情報を表示します。

必要なライブラリのインストール

まず、pytubeライブラリをインストールする必要があります。以下のコマンドを実行してインストールしてください。

pip install pytube

コード例

以下が、TkinterとPytubeを使ったYouTube動画情報取得アプリのコードです。

import tkinter as tk
from tkinter import messagebox
from pytube import YouTube

def get_video_info():
    url = url_entry.get()

    try:
        # YouTubeオブジェクトを作成
        yt = YouTube(url)

        # 動画情報を取得
        title = yt.title
        description = yt.description
        views = yt.views
        length = yt.length
        rating = yt.rating

        # 情報を表示
        info_text = f"タイトル: {title}\n\n"
        info_text += f"説明: {description}\n\n"
        info_text += f"視聴回数: {views:,} 回\n"
        info_text += f"長さ: {length/60} 分\n"
        info_text += f"評価: {rating}\n"

        info_label.config(text=info_text)

    except Exception as e:
        messagebox.showerror("エラー", f"動画情報の取得に失敗しました。\n{str(e)}")

# Tkinterウィンドウの設定
root = tk.Tk()
root.title("YouTube動画情報取得")
root.geometry("600x400")

# URL入力ラベルとエントリー
url_label = tk.Label(root, text="YouTube動画のURL:")
url_label.pack(pady=10)

url_entry = tk.Entry(root, width=50)
url_entry.pack(pady=10)

# 情報取得ボタン
get_info_button = tk.Button(root, text="情報を取得", command=get_video_info)
get_info_button.pack(pady=20)

# 情報表示ラベル
info_label = tk.Label(root, text="", justify=tk.LEFT)
info_label.pack(pady=10)

# メインループ
root.mainloop()

コードの説明

1. ライブラリのインポート

import tkinter as tk
from tkinter import messagebox
from pytube import YouTube
  • tkinter: GUIアプリケーションを作成するための標準ライブラリです。
  • messagebox: ユーザーにエラーメッセージなどを表示するためのモジュールです。
  • pytube: YouTubeから動画情報を取得するためのライブラリです。

2. 動画情報取得関数の定義

def get_video_info():
    url = url_entry.get()

    try:
        # YouTubeオブジェクトを作成
        yt = YouTube(url)

        # 動画情報を取得
        title = yt.title
        description = yt.description
        views = yt.views
        length = yt.length
        rating = yt.rating

        # 情報を表示
        info_text = f"タイトル: {title}\n\n"
        info_text += f"説明: {description}\n\n"
        info_text += f"視聴回数: {views:,} 回\n"
        info_text += f"長さ: {length/60} 分\n"
        info_text += f"評価: {rating}\n"

        info_label.config(text=info_text)

    except Exception as e:
        messagebox.showerror("エラー", f"動画情報の取得に失敗しました。\n{str(e)}")
  • get_video_info(): この関数は、ユーザーが入力したURLを取得し、Pytubeを使って動画情報を取得します。
  • url_entry.get(): エントリーフィールドからユーザーが入力したURLを取得します。
  • YouTube(url): Pytubeを使用してYouTubeオブジェクトを作成します。
  • 各情報(タイトル、説明、視聴回数、長さ、評価)を取得し、フォーマットされた文字列としてinfo_textに格納します。
  • info_label.config(text=info_text): 取得した情報をGUIに表示します。
  • 例外処理を行い、エラーが発生した場合にはメッセージボックスでエラーメッセージを表示します。

3. Tkinterウィンドウの設定

root = tk.Tk()
root.title("YouTube動画情報取得")
root.geometry("600x400")
  • tk.Tk(): Tkinterのメインウィンドウを作成します。
  • title(): ウィンドウのタイトルを設定します。
  • geometry("横x縦"): ウィンドウのサイズを設定します。

4. GUIコンポーネントの作成

# URL入力ラベルとエントリー
url_label = tk.Label(root, text="YouTube動画のURL:")
url_label.pack(pady=10)

url_entry = tk.Entry(root, width=50)
url_entry.pack(pady=10)

# 情報取得ボタン
get_info_button = tk.Button(root, text="情報を取得", command=get_video_info)
get_info_button.pack(pady=20)

# 情報表示ラベル
info_label = tk.Label(root, text="", justify=tk.LEFT)
info_label.pack(pady=10)
  • Label: テキストラベルを作成します。
  • Entry: ユーザーがテキストを入力できるエントリーフィールドを作成します。
  • Button: ボタンを作成し、クリック時にget_video_info関数を呼び出します。
  • pack(): コンポーネントをウィンドウに配置します。

5. メインループの開始

# メインループ
root.mainloop()
  • mainloop(): Tkinterのイベントループを開始し、ウィンドウが閉じられるまでアプリケーションを実行し続けます。

まとめ

このアプリケーションは、ユーザーがYouTubeの動画URLを入力すると、その動画に関する情報を取得して表示します。Tkinterを使用してGUIを作成し、Pytubeを使用してYouTubeからデータを取得することで、使いやすいインターフェースを提供しています。

このコードは、基本的なエラーハンドリングも含まれており、ユーザーが無効なURLを入力した場合には適切なエラーメッセージを表示します。さらに、視聴回数などの数値をカンマ区切りで表示することで、視覚的にもわかりやすくしています。

このアプリケーションを拡張することで、さらなる機能(例えば、動画のダウンロード機能など)を追加することも可能です。

下のボタンから無料でサンプルコードをダウンロードできます。

 

ファイルをダウンロード

この他にもツールを作成しています。
ぜひ、見てみてください。

コメント

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