Skip to content

Many people have probably heard of the "Network Bodhisattva," which refers to Cloudflare. Almost all of their products, including but not limited to CDN, KV databases, 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 small businesses or individual studios can support their business without spending a penny.

Recently, Cloudflare has launched a free AI service, allowing you to build a free and usable AI service directly in their website backend, without servers or domain names, in just a few simple steps. This includes translation, text generation, text-to-image generation, and speech recognition. This is a wave of benefits, so don't miss out!

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

This article mainly includes:

  1. Registering an account and logging in
  2. Creating a Worker service
  3. Copying and pasting code and deploying and starting
  4. Binding your own domain name (optional)
  5. Using this API in code or software

1. Registering an Account and Logging In

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 login: https://dash.cloudflare.com/login

2. Creating 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 name assigned to you. Only numbers, English letters, underscores, and hyphens are allowed. As shown in the figure below, then save - done.

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

3. Copying and Pasting Code

Click "Edit code" displayed at the end of the previous step, wait for the page to display, then delete all the code on the left and paste the following code to 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 access",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 then confirm and deploy again in the confirmation window that pops up.

Okay, you can use it happily. For example, if the address after my deployment 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 interface address.

4. Binding Your Own Domain Name

If you think this address is too long or not good, 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 name.

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

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

After adding, return to your worker. Remember how to enter? 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 name. For example, if the domain name you have bound to Cloudflare is abc.com, then you can set api.abc.com here.

Okay, now you can access it using your own domain name.

5. Using 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), West 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)

Using this API with Python code:

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.

Using it 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 to happily use the free API and free service resources to translate your videos. The free quota is generally enough for monthly use.