LoginSignup
1
4

More than 1 year has passed since last update.

DeepL APIで複数のテキストを一度に翻訳

Last updated at Posted at 2022-01-03

DeepL API:https://www.deepl.com/ja/docs-api/translating-text/
Python Requestsライブラリ:https://note.nkmk.me/python-requests-usage/

DeepL APIは、パラメータtextを1回のリクエストで複数個設定することが可能である。
GETメソッドで言えば、以下のような形式のURLが可能である。

https://api-free.deepl.com/v2/translate?auth_key={...}&text={1つ目のテキスト}&text={2つ目のテキスト}&text={3つ目のテキスト}&target_lang={...}

HTTPリクエストにPythonのRequestsライブラリを使用している場合、複数のテキストを一度に翻訳するには、パラメータtextをリストにすればよい(リストの最大要素数は50)。

sample.py
import requests

API_KEY = '__YOUR_API_KEY__'
TEXT = 'Dragon Quest #3 is my favorite game.'
TEXT2 = 'Dragon Quest #5 is also my favorite game.'
URL = "https://api-free.deepl.com/v2/translate"  # Free版の場合
# URL = "https://api.deepl.com/v2/translate"  # 有料版の場合
params = {
            "auth_key": API_KEY,
            "text": [TEXT,TEXT2],
            "target_lang": 'JA'
        }

request = requests.post(URL, data=params)
result = request.json()
print(result["translations"][0]["text"])
print(result["translations"][1]["text"])

実行結果は以下の通り。

ドラゴンクエスト#3は私のお気に入りのゲームです。
ドラゴンクエスト#5も大好きなゲームです。

もちろん、複数の文を空白や改行記号で結合すれば、一度に複数の文の翻訳を得ることができる。ただし、パラグラフごとのデータがあって、結合せずに翻訳結果を得たい場合などには、textをリストにするやり方が都合がよい。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4