Skip to content

Many people must know about the "Network Bodhisattva", which is Cloudflare. Almost all of their products, including but not limited to CDN, KV database, Pages, and Workers, provide a large amount of free resources and encourage people to use them for free. More importantly, the free quota is very high, and generally small businesses or individual studios can support their business without spending a penny.

Recently, Cloudflare launched a free AI service, which allows you to build a free and usable AI service directly in their website background without servers or domain names, with a few simple steps, including translation, text generation, text-to-image, and speech recognition. It's a real benefit, don't miss it!

This article mainly introduces how to build a usable free translation API in the Cloudflare dashboard, using the m2m100-1.2B model. The implemented effect is as follows.

This article mainly includes:

  1. Register and log in to your account
  2. Create a Worker service
  3. Copy and paste the code and deploy it
  4. Bind your own domain (optional)
  5. Use this API in code or software

1. Register and Log In to Your Account

If you don't have an account yet, click this address to register, it's very simple: https://dash.cloudflare.com/sign-up

If you have an account, go directly to log in: https://dash.cloudflare.com/login

2. Create a Worker Service

After logging in, click "Workers & Pages" on the left.

Then click "Create"

In the new page that opens, click "AI" on the right, find "Translation App", hover your mouse over it, and click.

In the next interface, set a name. This name will be part of the domain assigned to you. Only numbers, English letters, underscores, and hyphens are allowed. As shown in the figure below, then save and complete.

Next, it will tell you that the deployment is successful, but you still need to paste the code to replace the default one.

3. Copy and Paste the Code

Click "Edit Code" displayed in the last step above. Wait for the page to display, then delete all the code on the left and paste the following code on the left. 123456 is your access key, you can modify it to prevent others from using and wasting your free traffic.

// This is the access key
const SECRET_PASS="123456"

export default {
  async fetch(request, env) {
    const urlStr = request.url
    const urlObj = new URL(urlStr)
    let text =  urlObj.searchParams.get('text')
    let source_language = urlObj.searchParams.get('source_language')
    let target_language = urlObj.searchParams.get('target_language')
    let secret = urlObj.searchParams.get('secret')
    if(secret!==SECRET_PASS){
      return Response.json({code:1,msg:"Unauthorized",text:text,source_language:source_language,target_lanuage:target_language,secret:secret});
    }
    const inputs = {
      text: text,
      source_lang: source_language,
      target_lang: target_language,
    };
    const response = await env.AI.run('@cf/meta/m2m100-1.2b', inputs);

    if(response.translated_text.indexOf('ERROR')===0){
      return Response.json({code:2,msg:"ok",text:response.translated_text});
    }
    return Response.json({code:0,msg:"ok",text:response.translated_text });

  },
};

After pasting, wait for "Save & Deploy" in the upper right corner to be clickable, then click it, and confirm and deploy again in the pop-up confirmation window.

Okay, you can use it happily. For example, my deployed address is https://my-translate-api.2124455076.workers.dev/, then I can use it directly through this address:

https://my-translate-api.2124455076.workers.dev/?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B&source_language=zh&target_language=en&secret=123456

This address is your translation API endpoint.

4. Bind Your Own Domain

If you think this address is too long or bad, or if workers.dev may be blocked and cannot be accessed in China, and you don’t want to use a proxy, you can bind your own domain.

First, you need to modify your domain's NS server to Cloudflare's. After it takes effect, return to the Cloudflare homepage https://dash.cloudflare.com/ and bind your domain.

NSezra.ns.cloudflare.com
NSkarsyn.ns.cloudflare.com

After adding, return to your worker. Remember how to enter it? Click "Workers & Pages" on the left.

On the right, you will see the service you have created. Click its name to enter the settings page.

As shown in the figure below, first click "Settings --> Triggers", then click "Add Custom Domain" to add your own domain. For example, if the domain you have bound to Cloudflare is abc.com, then you can set api.abc.com here.

Okay, now you can use your own domain to access it.

5. Use this API in Code and Software

First, remember the language codes supported by m2m100:

Afrikaans (af), Amharic (am), Arabic (ar), Asturian (ast), Azerbaijani (az), Bashkir (ba), Belarusian (be), Bulgarian (bg), Bengali (bn), Breton (br), Bosnian (bs), Catalan (ca), Cebuano (ceb), Czech (cs), Welsh (cy), Danish (da), German (de), Greek (el), English (en), Spanish (es), Estonian (et), Persian (fa), Fulah (ff), Finnish (fi), French (fr), Frisian (fy), Irish (ga), Scottish Gaelic (gd), Galician (gl), Gujarati (gu), Hausa (ha), Hebrew (he), Hindi (hi), Croatian (hr), Haitian Creole (ht), Hungarian (hu), Armenian (hy), Indonesian (id), Igbo (ig), Ilocano (ilo), Icelandic (is), Italian (it), Japanese (ja), Javanese (jv), Georgian (ka), Kazakh (kk), Central Khmer (km), Kannada (kn), Korean (ko), Luxembourgish (lb), Ganda (lg), Lingala (ln), Lao (lo), Lithuanian (lt), Latvian (lv), Malagasy (mg), Macedonian (mk), Malayalam (ml), Mongolian (mn), Marathi (mr), Malay (ms), Burmese (my), Nepali (ne), Dutch (nl), Norwegian (no), Northern Sotho (ns), Occitan (oc), Oriya (or), Punjabi (pa), Polish (pl), Pashto (ps), Portuguese (pt), Romanian (ro), Russian (ru), Sindhi (sd), Sinhala (si), Slovak (sk), Slovenian (sl), Somali (so), Albanian (sq), Serbian (sr), Swati (ss), Sundanese (su), Swedish (sv), Swahili (sw), Tamil (ta), Thai (th), Tagalog (tl), Tswana (tn), Turkish (tr), Ukrainian (uk), Urdu (ur), Uzbek (uz), Vietnamese (vi), Wolof (wo), Xhosa (xh), Yiddish (yi), Yoruba (yo), Chinese (zh), Zulu (zu)

Use Python code to use this API:

import requests
response = requests.get(url="https://transapi.pyvideotrans.com/?text=你好啊我的朋友们&source_language=zh&target_language=en&secret=123456")

print(response.json())

It's that simple.

Use in video translation software:

Open the settings menu in the upper left corner -- Custom Translation API, fill in your API address and key, and then test it.

After there are no problems, select "TransAPI" in the translation channel, and you can happily use free API and free service resources to translate your video. The free quota is generally enough for monthly use.