相変わらず、生成系AIの話題で事欠かない状況ですね。
またChatGPT以外の生成系AIツールが出てきましたのも気になります。
そこで今回はBing(GPT4)、ChatGPT3.5、ChatGPT4、HaggingChatの4つの生成系AIツールでPythonコーディングを試してみました。

各生成系AIツールに全て同じ指示をしてどんな回答が来たのか、その結果を共有します。

まずは、以下の英文で指示をした結果です。

“What is the code for using pytube in Python to download videos from Youtube?”


Bing

英文で質問したのに、日本語に翻訳してくれました。
結果は、説明文、サンプルこーぢ、コードの説明、注意書き、参考URLという流れです。

pytubeは、PythonでYouTubeの動画をダウンロードするためのライブラリです¹²。pytubeを使うには、まずインストールする必要があります。Python3を使っている場合は、pip install pytube3というコマンドでインストールできます²。Python2を使っている場合は、pip install pytubeというコマンドでインストールできます¹。

pytubeをインストールしたら、以下のようなコードでYouTubeの動画をダウンロードできます¹²。

import pytube # pytubeをインポート
url = input("url:") # ダウンロードしたいYouTube動画のURLを入力
youtube = pytube.YouTube(url).streams.first().download() # 動画をダウンロード

このコードでは、動画のフォーマットや解像度などは自動的に選択されますが、もし指定したい場合は、streamsメソッドで利用可能なフォーマットのリストを取得し、その中から好きなものを選んでダウンロードすることができます¹²³。

import pytube # pytubeをインポート
url = input("url:") # ダウンロードしたいYouTube動画のURLを入力
format_list = pytube.YouTube(url).streams.all() # 利用可能なフォーマットのリストを取得
for format in format_list: # リストの中身を表示
    print(format)
# 好きなフォーマットを選んでダウンロード
youtube = pytube.YouTube(url).streams.get_by_itag(22).download() # itag=22のフォーマット(mp4, 720p)でダウンロード

このようにして、pytubeを使ってPythonでYouTubeの動画をダウンロードすることができます。ただし、pytubeはYouTubeの利用規約に違反する可能性があるので、個人的かつ非営利的な目的でしか使わないようにしてください⁴。

ソース: Bing との会話 2023/5/7
(1) 【Python】pytubeを使ってYouTubeの動画を3行でダウンロードし …. https://py-memo.com/python/pytube/.
(2) pytube3を使って、Youtubeの動画をダウンロードする方法 – Qiita. https://qiita.com/seiyatakahashi/items/c3562912054e1f15e65a.
(3) pytubeでYouTube動画をダウンロードする【Python】 | ジコログ. https://self-development.info/pytube%e3%81%a7youtube%e5%8b%95%e7%94%bb%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%99%e3%82%8b%e3%80%90python%e3%80%91/.
(4) Pytubeを使ってYoutubeの動画をDLしてみる – Qiita. https://qiita.com/rein223/items/f49c0aedce750e65cbe4.


ChatGPT3.5

ChatGPT3.5は説明少なめ、コードサンプル、コードの使い方という結果でした。
コードサンプルは1例のみ。

To download videos from YouTube using Pytube library in Python, you can use the following code:

from pytube import YouTube

# Ask for the video URL
video_url = input("Enter the YouTube video URL: ")

# Create a YouTube object
yt = YouTube(video_url)

# Print video details
print(f"Title: {yt.title}")
print(f"Number of views: {yt.views}")
print(f"Length of video: {yt.length} seconds")
print(f"Rating: {yt.rating}")

# Get the first stream with the highest resolution
stream = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()

# Download the video
stream.download()

This code asks the user for the YouTube video URL, creates a YouTube object with the URL, and prints some basic video details such as title, views, length, and rating. It then selects the first stream with the highest resolution that is both progressive and in the mp4 format. Finally, it downloads the video to the current working directory.


ChatGPT4

ChatGPT4も説明少なめ、pipでのpytubeの導入方法、コードサンプル、コードの使い方という結果でした。
こちらもコードサンプルは1例のみ。

Pytube is a lightweight, easy-to-use Python library for downloading YouTube videos. To use pytube, you’ll first need to install it via pip:

pip install pytube

Once you’ve installed pytube, you can use the following code to download a YouTube video:

from pytube import YouTube

# Set the URL of the video you want to download
video_url = 'https://www.youtube.com/watch?v=YOUR_VIDEO_ID'

# Create a YouTube object with the video URL
yt = YouTube(video_url)

# Get the highest resolution progressive stream available for the video
video = yt.streams.filter(progressive=True, file_extension='mp4').get_highest_resolution()

# Set the download path (optional)
download_path = '/path/to/your/download/directory'

# Download the video
video.download(download_path)

print(f"Video '{yt.title}' downloaded successfully.")

Remember to replace 'https://www.youtube.com/watch?v=YOUR_VIDEO_ID' with the actual URL of the video you want to download and set the download path accordingly.


HaggingChat

HaggingChatも説明少なめ、コードサンプル、コードの使い方という結果。
こちらもコードサンプルは1例のみ。

from pytube import YouTube
t = YouTube("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(t.streams.filter(fileextension='mp4').first().filename)

You need to install PyTube first. You could use poetry to manage your dependencies. To install PyTube via poetry add this to your _tools.toml:

repositories['pypi'] = {...

Then run poetry config repositories.pypi protocols http and then simply poetry add pytube.


上記の結果はいかがでしたでしょうか、どの生成系AIもそれなりに応答しますね。
それでは今度は日本語で質問するとどうなのでしょうか、確認していきます。

先程の英文を以下の日本文に翻訳してそれぞれに質問してみました。

“Pythonでpytubeを使い、Youtubeから動画をダウンロードするコードを教えてください。”


Bing(日本語)

日本語で質問してもまったく同じ回答でした。


ChatGPT3.5(日本語)

こちらは回答が日本語に翻訳されただけで、内容は同一でした。


ChatGPT4(日本語)

GPT3.5と同様に回答が日本語に翻訳されただけで、内容は同一。


HaggingChat(日本語)

こちらはなんと、日本語で質問したにもかかわらず、英文で回答が表示されました。
さらには先ほどとは別のコードサンプルとなっていました。


まとめ

今回は各種生成系AIツールをPythonのコードサンプル出力について日本語と英語で質問して比較してみました。結果としては以下。

1.それぞれのツールは日本語で質問しても、それなりに回答が得られる。
2.Bing、ChatGPTは英文も日本語も同じ回答。
3.HaggingChatのみ回答が英文。翻訳ツールなど併用が必要。

何かの参考になれば幸いです。