AI training data · Multilingual corpora
Multilingual corpus collection for LLM and NLP datasets
Multilingual corpus collection means gathering web text per language from the markets where that language is written, not from whatever a crawler happens to reach from one data centre. Fetch each language's sites from exits in its countries, honour machine-readable opt-outs, and pay per gigabyte for a run that may pause for months.
Pay per GB · No subscription · Prices in EUR, excl. VAT
- €0.75
- per GB on ARC Basic, excl. VAT
- −21%
- at 1 TB (€0.59 / GB)
- 185+
- countries, city targeting
- Never
- expires — no subscription
Written for
- Multilingual LLM pre-training teams
- Low-resource language NLP researchers
- Speech and translation dataset builders
- Regional model fine-tuning teams
The short answer
- English is about 42.6% of pages in Common Crawl's latest crawl statistics; the next language, Russian, is about 6.3%. Most languages are a fraction of a percent, so targeted collection is how you get enough of them.
- Many sites serve language and regional content by visitor location. Collect each language from exits in the countries where it is used, with country geo-targeting.
- In the EU, text and data mining of lawfully accessible content is allowed under Article 4 of Directive (EU) 2019/790 unless the rightholder has reserved it, for online content in machine-readable form. Check for reservations before you fetch.
- General-purpose AI model providers must have a copyright policy that identifies and complies with those reservations (AI Act, Art. 53(1)(c)), applicable from 2 August 2025.
- Text-only HTML is light. Run the bulk on ISP proxies, block images and media, and move only failing sources to a residential pool.
The problem
What goes wrong without the right IPs
Open crawls are English-heavy
In Common Crawl's language statistics, English is over 40% of pages and most languages sit well below one percent. Filtering a general crawl for a low-resource language yields little text, much of it machine-translated boilerplate. Seeding a targeted crawl from that language's own sites is usually the only way to reach useful volume.
The server picks the language from your IP
News sites, retailers and public services redirect to a regional edition or language by visitor location. Crawl Catalan, Basque or Galician sites from a US data centre and you may collect the Spanish or English edition instead.
Language ID fails on short and mixed text
Code-switching, transliteration and closely related languages confuse language identifiers. A page tagged as one language can be another, which is why per-market seeding plus document-level language ID beats either alone.
Opt-outs live in more than one place
A reservation of text and data mining rights can be expressed in robots.txt, in page metadata or in site terms. A crawler that reads only one of them can miss a reservation that applies.
Collection pauses for review
Licensing review, quality audits and annotation stop a crawl for weeks. A monthly subscription bills through the pause; a per-GB balance that never expires waits for you.
What to collect
What you can collect
- Document text, cleaned
- Main content with navigation and boilerplate removed. Store the raw HTML or a hash of it as well so cleaning can be rerun.
- Detected language and script, with confidence
- Document-level language ID plus script (Latin, Cyrillic, Devanagari …). Low-confidence documents are where most contamination hides.
- Exit country and fetch timestamp
- Which market the page was served for and when. Needed to explain regional variants and for any later takedown request.
- Canonical URL and domain
- For deduplication, per-domain balancing and honouring later removal requests.
- Rights signals observed
- robots.txt result, page-level TDM or AI-usage metadata, and licence statements seen at fetch time. This is the evidence trail for your opt-out compliance.
- Content hash and near-duplicate cluster ID
- Multilingual web text is heavily duplicated across mirrors and translated templates. Deduplicate before you count tokens.
- Licence, where stated
- Creative Commons and public-sector licences can be stored and filtered on; many datasets publish licence breakdowns.
How it runs
How a collection run works
- 01
Seed per language from per-market sources
Build seed lists from country-code domains, public broadcasters, government portals, Wikipedia-linked sites and open-licence repositories in each language. Tag each seed with the countries where its language is used.
- 02
Check rights signals before fetching
Read robots.txt per RFC 9309 for your crawler's user agent, and record any machine-readable text and data mining reservation the site publishes. Skip reserved content and keep the record.
robots.txt check, then a country-targeted fetch21 linesfrom urllib import robotparserfrom urllib.parse import urlsplitimport httpxPROXY_HOST, PROXY_PORT, PASSWORD = "proxy.arcproxies.io", 8000, "PASSWORD"UA = "ExampleCorpusBot/1.0 (+https://example.org/bot)"def proxy_for(country: str) -> str: user = f"USERNAME_pool-arc_country-{country}" # rotating ISP pool return f"http://{user}:{PASSWORD}@{PROXY_HOST}:{PROXY_PORT}"def allowed(url: str, client: httpx.Client) -> bool: root = "{0.scheme}://{0.netloc}".format(urlsplit(url)) rp = robotparser.RobotFileParser() rp.parse(client.get(root + "/robots.txt").text.splitlines()) return rp.can_fetch(UA, url)with httpx.Client(proxy=proxy_for("pl"), headers={"User-Agent": UA}, timeout=30) as c: url = "https://news.example.pl/article/123" if allowed(url, c): html = c.get(url).text # store with exit country, timestamp, rights signals - 03
Fetch text-only from exits in the language's markets
Rotate through a pool per country, block images, video and fonts, and keep a per-domain request rate low. Different languages can run in parallel without sharing a rate budget.
- 04
Identify language, deduplicate, filter
Run document-level language ID, cluster near-duplicates across domains, and apply quality filters tuned per language rather than one English-tuned threshold for all.
- 05
Balance and document
Balance per domain and per country so one large site does not dominate a language, and publish a summary of sources and opt-out handling with the dataset.
Setup
Recommended setup
Corpus text is light HTML at very high volume, so the cheapest pool carries almost all of it.
| Plan | Role | Session | Targeting | Price |
|---|---|---|---|---|
ARC Basic Rotating ISP | Default for text collection Our lowest price per GB, with country targeting in 185+ countries. Text-only pages are the shape it is built for. | Rotating | Country | €0.75 / GB €0.59 at 1 TB (−21%) |
ARC Fast Rotating residential | For regional sites that serve differently to hosting ranges Residential exits for the sources that return a different edition, or nothing, to data-centre traffic. Route only those domains. | Rotating, or sticky 10 minutes for paginated archives | Country + city | €2.00 / GB €1.12 at 1 TB (−44%) |
Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.
Connect
One connection string per market
The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000Swap _country-de for any market you quote. The full grammar is on the residential proxies page.
Illustration
What one collection run across eight languages costs
An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.
Assumptions
- Languages
- 8 (e.g. Polish, Czech, Greek, Romanian, Hungarian, Finnish, Croatian, Slovak)
- Pages per language
- 250,000
- Transfer per page
- 60 KB, text only, compressed
- Robots.txt and retries
- included in the page weight
- Bandwidth per collection run
- ≈ 120 GB
On ARC Basic
€81.60per collection run, excl. VAT
120 GB bought in one purchase at €0.68 / GB (−9% volume rung, applied automatically).
The same 120 GB on ARC Fast: €163.20 at €1.36 / GB. Route only the jobs that need it through the pricier pool.
Corpus runs are bursty: one big run, months of cleaning, then a top-up. Bought once, the balance does not expire between runs. See how much bandwidth scraping uses.
Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.
In depth
Multilingual corpora, in depth
How much of the web is not in English?
Common Crawl publishes language statistics per crawl, detected with CLD2 on HTML pages and counting each document's primary language. In its most recent crawl, CC-MAIN-2026-43, the top ten are:
| Language | Share of pages |
|---|---|
| English | 42.6% |
| Russian | 6.3% |
| German | 5.8% |
| Japanese | 4.9% |
| French | 4.8% |
| Spanish | 4.7% |
| Chinese | 4.4% |
| Italian | 2.6% |
| Portuguese | 2.5% |
| Polish | 1.9% |
Everything below Polish shares the remaining fraction among more than a hundred languages. That is why multilingual datasets combine general crawls with targeted collection. FineWeb2, for example, adapted one processing pipeline to more than 1,000 languages from about 100 Common Crawl snapshots and found that per-language tuning of filtering and deduplication matters.
Text and data mining opt-outs under EU law
Directive (EU) 2019/790 has two text and data mining exceptions. Article 3 covers research organisations and cultural heritage institutions mining for scientific research. Article 4 covers everyone else, including commercial model training, for lawfully accessible works, on condition that the rightholder has not expressly reserved that use in an appropriate manner; for content made publicly available online, the directive names machine-readable means as the appropriate manner.
The AI Act ties model providers to that condition. Article 53(1)(c) of Regulation (EU) 2024/1689 requires providers of general-purpose AI models to put in place a policy to comply with Union copyright law and, in particular, to identify and comply with reservations of rights under Article 4(3) of the directive. Article 53(1)(d) requires a publicly available summary of training content. Both apply from 2 August 2025.
In practice, that means recording what each source said at fetch time. This page describes what the texts say; it is not legal advice, and how to treat specific signals is a question for counsel.
Why exit location matters for language coverage
- Regional editions. Broadcasters, retailers and public services redirect to a language or regional edition by visitor location. The exit decides which edition you collect.
- Minority languages within a country. Regional-language versions of a site are often served to visitors in the region or chosen by default there.
- Per-language rate budgets. Spreading a crawl across country pools keeps each domain's request rate low and lets languages run in parallel. See rate limiting.
- Provenance. Logging the exit country with each document lets you explain later why a page is in the corpus in the form it is.
If a page renders its text with JavaScript, render it with a headless browser, but block media; text is what you are paying to collect.
Running a polite, documented corpus crawl
Identify your crawler with a user agent and a contact URL, read robots.txt for that user agent, keep a conservative per-domain rate, and honour removal requests by URL and domain. Keep everything public and logged-out: no paywalls, no accounts, no CAPTCHA solving.
Keep the rights signals and fetch metadata with each document in your corpus store. When the training-content summary is written, or a rightholder asks, that record is what you will need. The AI training data page covers the general setup, and our acceptable use policy applies to every request.
Works with anything that takes a proxy URL
- Python requests / httpx
- Scrapy
- Crawl4AI
Crawlee
- Docker
FAQ
Questions
Something not covered? Write to contact@arcproxies.io.
How do I collect training data in a specific language?
Seed a crawl from sites in that language, such as country-code domains, public broadcasters and government portals, and fetch them from exits in the countries where the language is used. Then run document-level language identification and per-language quality filtering, because general crawls contain very little text in most languages.
What share of the web is in English?
In Common Crawl's language statistics for crawl CC-MAIN-2026-43, English is about 42.6% of HTML pages by primary language. Russian is next at about 6.3%, then German, Japanese, French and Spanish at around 5% each. Most languages are well under one percent.
Does the EU text and data mining exception allow AI training on web content?
Article 4 of Directive (EU) 2019/790 allows text and data mining of lawfully accessible works, including for commercial purposes, unless the rightholder has expressly reserved it, for online content in machine-readable form. The AI Act requires general-purpose model providers to identify and comply with those reservations. This is not legal advice.
Do I need residential proxies for corpus collection?
Mostly not. Text pages from news, public and reference sites are light HTML that ARC Basic handles with country targeting at our lowest price per GB. Move a domain to ARC Fast only when it serves a different edition, or nothing, to data-centre addresses.
How much bandwidth does a multilingual corpus crawl use?
Text-only pages with images and media blocked are often 30 to 100 KB in transfer. Eight languages at 250,000 pages each at 60 KB comes to about 120 GB per run. Rendering pages or fetching media multiplies that quickly.
Can I respect robots.txt while using a proxy pool?
Yes. robots.txt applies to your crawler, not to the IP it comes from. Identify the crawler with a user agent, read each site's robots.txt for that user agent, and skip disallowed paths whichever exit the request uses.
Sources & review
Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.
- [1]EUR-Lex: Directive (EU) 2019/790 on copyright and related rights in the Digital Single Market
- [2]EUR-Lex: Regulation (EU) 2024/1689 (Artificial Intelligence Act)
- [3]Common Crawl: Statistics of Common Crawl Monthly Archives: Distribution of Languages
- [4]arXiv (Penedo et al.): FineWeb2: One Pipeline to Scale Them All – Adapting Pre-Training Data Processing to Every Language
- [5]IETF: RFC 9309: Robots Exclusion Protocol
AI training data
More on ai training data
Get started
Buy a gigabyte and try it on your own targets.
No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.