xTerradon / hcaptcha-solver

Automated hCaptcha solver using binary image classification networks
https://pypi.org/project/hcaptcha-solver/
23 stars 8 forks source link

multiple language support (currently only english) #6

Open xTerradon opened 1 year ago

xTerradon commented 1 year ago

The hcaptcha_solver only works on captchas in english, as the models are matched through the text of the captcha header. If you open the captcha in another language, the model_handler will not be able to find a CNN model accordingly, even if the task could be solved.

The strings should be translated before checking for matches in the available models. This can be done by hardcoding (100% safe but not dynamic) or by using dynamic translation libraries (prone to errors, but dynamic) or a combination of both.

Shaeikh commented 1 year ago

Hello xTerradon, First of all I wanna say thanks for this amazing project

for this post, I have seen that the translation of any language is direct translation from english You can use any translation library to translate it, or I can if you manually wanna translate it

xTerradon commented 1 year ago

Hey, thank you for your comment! You are correct that the models are simply labeled by their target, e.g. "flower" is the CNN used for solving the "Please click each image containing a flower". The problem I see with translating libraries is that they might not translate the task perfectly, for example for a more complex name like "a cup of orange juice". Additionally, it would have to filter out the non-important task of the string ("Please click ..."), which also varies across different tasks.

So while a translation library might do the trick in many cases, there will always be mistakes in the matching. The only alternative I see is hardcoding the matches, but that would require tedious effort and continuous maintaining for future model improvements.

I really appreciate your offer to help! Feel free to fork the project and open a pull request if you come up with a clever way of matching task and model. Otherwise this will be a feature added later in the development process.

Shaeikh commented 1 year ago

You are right, I didn't thought of that. Yea I will think of a better way again thanks for this amazing repo