googletrans stopped working with error 'NoneType' object has no attribute 'group'
Solution 1
Update 01/12/2020: This issue re-emerged lately, (apparently) caused once again by some changes on the Google translation API.
A solution is being discussed (again) in this Github issue. Although there is not a definitive solution yet a Pull Request seem to be solving the problem: https://github.com/ssut/py-googletrans/pull/237.
While we wait for it to be approved it can be installed like this:
$ pip uninstall googletrans
$ git clone https://github.com/alainrouillon/py-googletrans.git
$ cd ./py-googletrans
$ git checkout origin/feature/enhance-use-of-direct-api
$ python setup.py install
Original Answer:
Apparently it's a recent and widespread problem on Google's side. Quoting various Github discussions, it happens when Google sends you directly the raw token.
It's being discussed right now and there is already a pull request to fix it, so it should be resolved in the next few days.
For reference, see:
https://github.com/ssut/py-googletrans/issues/48 <-- exact same problem reported on the Github repo https://github.com/pndurette/gTTS/issues/60 <-- seemingly same problem on a text-to-speech library https://github.com/ssut/py-googletrans/pull/78 <-- pull request to fix the issue
To apply this patch (without waiting for the pull request to be accepted) simply install the library from the forked repo https://github.com/BoseCorp/py-googletrans.git (uninstall the official library first):
$ pip uninstall googletrans
$ git clone https://github.com/BoseCorp/py-googletrans.git
$ cd ./py-googletrans
$ python setup.py install
You can clone it anywhere on your system and install it globally or while inside a virtualenv
.
Solution 2
Update 06.12.20: A new 'official' alpha version of googletrans with a fix was released
Install the alpha version like this:
pip install googletrans==3.1.0a0
Translation example:
translator = Translator()
translation = translator.translate("Der Himmel ist blau und ich mag Bananen", dest='en')
print(translation.text)
#output: 'The sky is blue and I like bananas'
In case it does not work, try to specify the service url like this:
from googletrans import Translator
translator = Translator(service_urls=['translate.googleapis.com'])
translator.translate("Der Himmel ist blau und ich mag Bananen", dest='en')
See the discussion here for details and updates: https://github.com/ssut/py-googletrans/pull/237
Update 10.12.20: Another fix was released
As pointed out by @DesiKeki and @Ahmed Breem, there is another fix which seems to work for several people:
pip install googletrans==4.0.0-rc1
Github discussion here: https://github.com/ssut/py-googletrans/issues/234#issuecomment-742460612
In case the fixes above don't work for you
If the above doesn't work for you, google_trans_new
seems to be a good alternative that works for some people. It's unclear why the fix above works for some and doesn't for others. See details on installation and usage here: https://github.com/lushan88a/google_trans_new
#pip install google_trans_new
from google_trans_new import google_translator
translator = google_translator()
translate_text = translator.translate('สวัสดีจีน',lang_tgt='en')
print(translate_text)
#output: Hello china
Solution 3
Try google_trans_new. It solved the problem for me https://github.com/lushan88a/google_trans_new
pip install google_trans_new
from google_trans_new import google_translator
translator = google_translator()
translate_text = translator.translate('Hola mundo!', lang_src='es', lang_tgt='en')
print(translate_text)
-> Hello world!
Solution 4
Update 10.12.20: New Alpha Version Release (Stable Release Candidate) is released: 4.0.0-rc1
It can be installed as follows:
pip install googletrans==4.0.0-rc1
Usage:
translation = translator.translate('이 문장은 한글로 쓰여졌습니다.', dest='en')
print(translation.text)
>>This sentence is written in Korean.
detected_lang = translator.detect('mein english me hindi likh raha hoon')
print(detected_lang)
>>Detected(lang=hi, confidence=None)
detected_lang = translator.detect('이 문장은 한글로 쓰여졌습니다.')
print(detected_lang)
>>Detected(lang=ko, confidence=None)
Solution 5
Updated Answer as of 2021 Sept
pip uninstall googletrans==4.0.0-rc1
pip install googletrans==3.1.0a0
The 3.1.0a0 version works with bulk translation too!

steveJ
Updated on February 13, 2022Comments
-
steveJ 8 months
I was trying
googletrans
and it was working quite well. Since this morning I started getting below error. I went through multiple posts from stackoverflow and other sites and found probably my ip is banned to use the service for sometime. I tried using multiple service provider internet that has different ip and stil facing the same issue ? I also tried to usegoogletrans
on different laptops , still same issue ..Isgoogletrans
package broken or something google did at their end ?>>> from googletrans import Translator >>> translator = Translator() >>> translator.translate('안녕하세요.') Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> translator.translate('안녕하세요.') File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 172, in translate data = self._translate(text, dest, src) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 75, in _translate token = self.token_acquirer.do(text) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 180, in do self._update() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 59, in _update code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '') AttributeError: 'NoneType' object has no attribute 'group'
-
steveJ about 4 yearsThanks!In which location/file I have to put the code from github.com/ssut/py-googletrans/pull/78 for temporary fix ?
-
Maldus about 4 yearsI'd say something went wrong while uninstalling the official library, with the fix installed it worked for me. Are you familiar with virtualenv? can you try creating a clean virtual environment, installing the pull request package and then running the example again? Also, check if you are actually able to use google translate from its web page
-
steveJ about 4 yearsYes from webpage I am able to use it. Let me clean it completely
-
steveJ about 4 yearsIts working after proper cleanup. Do you know when the new version will get released.. I looked to the pypi and it seems in next 2 days ?
-
Maldus about 4 yearsNo idea, sorry. I had this problem just today and found out about the fix alongside your question
-
Raj Adroit about 4 yearsOn your copy of code now facing this issue: ValueError: No JSON object could be decoded
-
Maldus about 4 yearsIt's not my copy, I didn't create the pull request. The ValueError is discussed as well in github.com/ssut/py-googletrans/pull/78 , and it appears to be unrelated to the fix. It seems the problem is google blocking your IP when requesting too many translations. Does it happen immediatly or after many requests?
-
gashu about 4 yearsMy IP is also getting blocked after using the above pull request, although it resolved the "None Type" issue. It happens after 250 requests or something, I have even tried on a different server, the IP is getting blocked after few requests. Earlier I could make thousands of requests and my IP never got blocked. The new pull request has messed up something, any idea?
-
Maldus about 4 yearsI don't think it's the pull request's direct fault. It seems more likely that Google updated its policies (and API) in a way that caused first the NoneType error and then the IP block. I am not really sure though, I just need a few requests per day. Someone suggested to insert some delay between each request.
-
rgargente about 4 yearsThe other solution didn't work for me but this one did! Thanks!
-
shahar_m almost 4 yearsNeed to restart the kernel when working on jupyter. Other than that, works great.
-
mikey almost 4 yearsProbably just need to reload, in Py3, e.g.,
import importlib; import googletrans; importlib.reload(googletrans)
-
user2259664 almost 4 yearsStill doesn't work for me: ~~~import googletrans as gt translator = gt.Translator() translation = translator.translate('Hello') print(translation.text)~~~ ---> 66 code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '') 67 # unescape special ascii characters such like a \x3d(=) 68 if PY3: # pragma: no cover AttributeError: 'NoneType' object has no attribute 'group'
-
Ice Bear almost 2 yearsHello! Any updates from this? This answer did not work for me :(
-
Maldus almost 2 yearsIt is an old answer to an old problem that only recently re-emerged. There is a new discussion to fix the issue today and I have updated the answer to mention that,
-
Moritz almost 2 yearsmh.. I uninstalled and gitcloned exactly as described above, but I'm still getting "AttributeError: 'NoneType' object has no attribute 'group'"
-
Moritz almost 2 yearsFor some reasons it only works when I add the service URL argument like this: translator = Translator(service_urls=['translate.googleapis.com'])
-
Danil Kononyhin almost 2 yearswhen I use Moritz's hack with service_urls, there is no error, but no translation is given. It returns original text.
-
Danil Kononyhin almost 2 yearsfor me worked installing alpha version: pip install googletrans==3.1.0a0
-
ludgo almost 2 yearsFor me this works also without specifying url. Translating between en and es though.
-
Moritz almost 2 yearsyou are right, now it's working for me too without specifying the service URL. I suppose there was another fix
-
ludgo almost 2 years@Moritz update, it suddenly stopped working for me, returning original word instead of spanish translation. Had to switch to google_trans_new
-
Moritz almost 2 yearsmh.. weird, it still works for me (just retried it for en-es, es-en, de-en, de-fr etc). is it the same "NoneType object" problem, or a different error message? (Are you sure it's not linked to changes in your python environment or something else?)
-
Ice Bear almost 2 years@Moritz I had the same issue as @ludgo. The package worked thoo like for 3 days then after that it just returns the same text. I tried putting the
service_urls
but it gives the famous error which is about the token and still same text. I'm not sure why this happen tho but I posted an issue on the github. (link)[github.com/ssut/py-googletrans/issues/254] -
Ice Bear almost 2 yearsI like this package tho cause it came from the previous one where everyone was experiencing about the
token
error. But I think I might have to usegoogle_trans_new
if this might take too long... Would you happen guys to know ifgoogle_trans_new
is also derived from this package or the other one? which isgoogle_trans
? I think the developer who made it is different. -
Moritz almost 2 years@StackOffended: the contributors py-googletrans and google_trans_new are not the same people according to github. Another friend of mine installed the py-googletrans alpha version described above and it worked for them. (I just tried it again, it it still works for me). the best approach is probably to try the alpha version and if it doesn't work for you, switch to google_trans_new. No idea where the issue comes from, unfortunately :/
-
Ice Bear almost 2 yearsOkay Thanks! :D but I was just wondering
google_trans_new
,py-googletrans
and thealpha version
all just use the same Google Translate API right? I mean why is the alpha version returning the same text thoo while the other don't :/ and when I triedgoogle_trans_new
everything's fine. Anyways I think I might go togoogle_trans_new
. :D -
Ice Bear almost 2 yearsI'm getting errors now if I translate a lot of text data. See here (github.com/ssut/py-googletrans/issues/261)[linkerror]
-
hafiz031 over 1 yearAny way to get the confidence of translation from here? I didn't find any.
googletrans
is capable of providing confidence. -
Hatt over 1 yearFWIW - I used the googletrans from the original answer - worked fine. Applied it to a 500 row DF and it stopped working after max tries. Tried google_trans_new on the same DF and it worked fine. Sounds shaky either way.
-
Thiago over 1 yearThis solution did not work for me. Only installing google_trans_new solved my problem.
-
Koustav Chanda over 1 year@Thiago Thanks google_trans_new solved my problem of translating bn to en.
-
GlennS over 1 yearConfirming that this method solved the issue for me. Thanks Abdulkarim Malkadi!
-
Christian Kammerer over 1 year@Moritz I love you
-
Poikilos about 1 yearIt works for me July 29, 2021 in Python 3.7.3 on Debian 10. Thanks!
-
brygid about 1 yearfor me it produced this eror: AttributeError: 'NoneType' object has no attribute 'group' any solutions? thanks
-
Antoine about 1 yearThis saved me tons of time many thanks! +1
-
Harrish Selvarajah about 1 yearthis solution works!!
-
Harrish Selvarajah about 1 yearDoesn't work for bulk translation :(
-
Bahman Rouhani 11 monthsIn case anyone else is looking for a working solution, as of Dec 2021 was the best one.
-
Counter10000 8 monthsIt works for me Feb 14, 2022 in Python 3.8.10 on Linux. Thanks!
-
Omar 6 monthsAs of May 2022, this solution worked for me.
-
Purushottam 5 monthsAs of 22-May-2022, this is working fantastically