やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Google翻訳APIを使ってみる

翻訳できた。

成果物

GitHubPython.Google.Translate.201709161249

参考

Google翻訳API、昔は無料で使えてなかったっけ?

サーバ負荷に気をつけ、慎ましく使ってみる。

import sys
import requests

url = "https://translate.google.com/translate_a/single"
headers = {
    "Host": "translate.google.com",
    "Accept": "*/*",
    "Cookie": "",
    "User-Agent": "GoogleTranslate/5.9.59004 (iPhone; iOS 10.2; ja; iPhone9,1)",
    "Accept-Language": "ja-jp",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "keep-alive",
    }
sentence = "My name is Ann. "
params = {
    "client": "it",
    "dt": ["t", "rmt", "bd", "rms", "qca", "ss", "md", "ld", "ex"],
    "otf": "2",
    "dj": "1",
    "q": sentence,
    "hl": "ja",
    "ie": "UTF-8",
    "oe": "UTF-8",
    "sl": "en",
    "tl": "ja",
    }

res = requests.get(
    url=url,
    headers=headers,
    params=params,
    )
print(res.status_code)
res = res.json()
print(res["sentences"][0]["trans"])
$ python translate.py 
200
私の名前はアンです。

コードを読むかぎり、以下の項目が本質か。

項目 説明
sentence 翻訳対象テキスト
params['sl'] 翻訳対象テキストの言語。source_language, sentence_language, 等の略と思われる。
params['tl'] どの言語に翻訳したいか。

間違って連続実行してしまったとき、ループさせてしまったときなど、2秒間sleepがあるので異常なサーバ負荷にはならないはず。

疑問

他のAPIは?

MicrosoftAPIは月200万文字まで無料らしい。

ローカルでやりたい

Web通信不要なのはイザというとき頼もしい。

自前実装はかなり大変そうだが面白そう。

所感

とりあえず、これをもう少し使いやすい形にしたい。