AVC-1.8M · An open video–language dataset

Aligned Video
Captions 1.8M

1.8 million ten-second video windows, each carrying a stack of temporally aligned text layers — speech transcripts, on-screen text, dense visual descriptions, fused captions, and structured entities — plus a modality-attributed retrieval & QA benchmark that tells you which layer holds the evidence for every query.

1,825,901
canonical 10-second windows
28,893
YouTube videos · ~5,160 hours · 18.2M 1 fps frames
10+
aligned text layers per window, from ASR to structured entities
4,237
human-reviewed benchmark items — 2,195 queries + 2,042 QA pairs

Anatomy of a window

Every window is a stack of aligned text

Two real windows from the test split. Ten frames, one for each second — and beneath them, the text layers that describe the same ten seconds from different sources. Queries are attributed to the layer that generated them.

Frame at second 0: pot of liquid boiling on a stovetop Frame at second 1 Frame at second 2: on-screen text appears over the pot Frame at second 3 Frame at second 4 Frame at second 5 Frame at second 6: on-screen text fading out Frame at second 7 Frame at second 8: red spatula stirring the pot Frame at second 9: spatula stirring rice mixture

Howto & Style — a cooking window where speech, screen text, and visuals all carry signal 1mbyCXQIYxU__s140__e150

ASR Now, we're going to bring this to a boil on medium heat just to reduce the liquid. Then we're going to give it a stir,
SCENE TEXT Bring to a boil on medium heat to reduce liquid
VISUAL The video shows a close-up of a stainless steel pot with a brown liquid inside. The pot is on a black stovetop burner with a flame underneath. The liquid is bubbling and steaming, and there is a red spatula in the pot 
FUSED A close-up shows a pot of rice and brown liquid bubbling and steaming on a stovetop burner, with a red spatula stirring the mixture. The person cooking explains that they are bringing the rice to a boil on medium heat 
ENTITY character: Narrator — chef, informative

Attributed benchmark queries

asr-born
“how to reduce liquid by boiling on medium heat”
ocr-born
“how to bring to a boil on medium heat to reduce liquid”
visuals-born
“cooking rice on stovetop with red spatula”
dense-born
“how to cook rice on a stovetop with stirring instructions”
Frame at second 0: close-up of a black scooter handlebar Frame at second 1 Frame at second 2: hand operating the handlebar controls with text overlays Frame at second 3 Frame at second 4 Frame at second 5 Frame at second 6: removable battery pack with labels Frame at second 7 Frame at second 8 Frame at second 9: battery pack labeled 15000mah

Science & Technology — a product demo where the evidence lives in the on-screen text lgwKFOTjbCU__s820__e830

ASR 6 included handlebar will provide you with options to accelerate brake and to go back. It comes with a 15,000 mah battery that
SCENE TEXT Maximum speed 6 km/h · Press the right button to go · Left button brake · Airwheel ROBOT · Removable large capacity lithium battery (can be used independently as power bank) · 15000mah battery 
VISUAL The video clip shows a close-up of a black scooter handlebar with a white text overlay that reads “Zero line embedded patent handlebar”. The handlebar has a black button in the center, a grey lever on the left side 
FUSED This clip demonstrates the Airwheel ROBOT scooter, focusing on its specialized handlebar with embedded patent technology and intuitive controls for acceleration, braking, and reversing 
ACTIVITIES A hand pressing the buttons and levers on the scooter handlebar, demonstrating the functions of the controls 

Attributed benchmark queries

asr-born
“device with handlebar controls for accelerate brake and reverse”
ocr-born
“Airwheel removable 15000mAh lithium battery power bank”
visuals-born
“Airwheel Robot scooter handlebar controls”
dense-born
“removable 15000mah lithium battery used as power bank for scooter”
ASR transcript · ~88% of windows Frame OCR + VLM scene text · ~65% Dense visual description Narrative / activity / background / audio summaries Fused caption Entities · 4.0M characters · 2.9M objects · 1.8M backgrounds · 17 vertical schemas Audio metadata · incl. 90,060 music captions Content flags

Windows are sampled across categories from English-language YouTube videos in Panda-70M. Alongside the text layers, the dataset ships 193 precomputed embedding matrices (six image encoders × three poolings, audio encoders, and text encoders over 13+ text views and entity search texts) and lexical BM25 indexes — so most experiments never touch the raw media.

Composition

What 1.8M windows look like

Windows span fifteen source categories, so retrieval systems meet cooking tutorials, news, gaming, and music on equal footing. The benchmark keeps its four evidence modalities in near-equal balance by construction.

10-second windows by source category 1,825,901 total
Film & Animation252,636
Travel & Events162,462
Education141,474
Pets & Animals139,317
Nonprofits & Activism131,193
Comedy123,535
People & Blogs122,446
Science & Technology120,137
Autos & Vehicles119,838
Entertainment112,966
Music107,122
Sports84,976
Howto & Style75,891
Gaming70,638
News & Politics61,270
Benchmark items by generating modality 4,237 total
asr1,073550 queries · 523 QA
ocr972515 queries · 457 QA
visuals1,100569 queries · 531 QA
dense1,092561 queries · 531 QA

Of the 2,195 retrieval queries, 695 are graded hard and 1,500 normal.

Get the data

One public container. No registration, no keys.

The full distribution lives in a public Azure Blob Storage container with anonymous read access — no SAS tokens, no sign-up. Machine-readable metadata is served as MLCommons Croissant at the container root.

container root
https://publicavcdist.blob.core.windows.net/avc-1-8m/

Quick check

Confirm the container is reachable and skim the layout docs:

shell
# dataset metadata (Croissant 1.0, with Responsible-AI fields)
curl -s https://publicavcdist.blob.core.windows.net/avc-1-8m/croissant.json | head

# layout + usage docs at the container root
curl -s https://publicavcdist.blob.core.windows.net/avc-1-8m/README.md

Download

Grab individual files with wget/curl, or whole trees with azcopy:

shell
# the benchmark itself is tiny — start here (~4 MB each)
wget https://publicavcdist.blob.core.windows.net/avc-1-8m/test_question_answers.jsonl
wget https://publicavcdist.blob.core.windows.net/avc-1-8m/test_search_queries.jsonl

# per-window caption records for the test split (~184 MB)
wget https://publicavcdist.blob.core.windows.net/avc-1-8m/dist/captions_and_meta-test.jsonl

# bulk-download a subtree (see the size table before recursing!)
azcopy copy 'https://publicavcdist.blob.core.windows.net/avc-1-8m/dist' . --recursive

Load it with mlcroissant

python
import mlcroissant as mlc

ds = mlc.Dataset("https://publicavcdist.blob.core.windows.net/avc-1-8m/croissant.json")

# record sets: "retrieval_queries", "qa_pairs"
for record in ds.records(record_set="retrieval_queries"):
    print(record)
    break

What's where — and how heavy it is

The text side of the dataset (captions, benchmark, QA) is light; embeddings and raw media are the heavy part. Check before you recurse:

PathContentsWeight
croissant.json · README.md Machine-readable metadata and layout docs at the container root Tiny
test_question_answers.jsonl · test_search_queries.jsonl The benchmark: 2,042 QA pairs and 2,195 retrieval queries with the window's full caption context inline — self-contained for judging Tiny (~4 MB each)
dist/ Per-window caption records for train / val / test (1,631,378 / 94,362 / 88,566 windows) plus generated training pools: ~11.6M QA pairs and ~11.6M retrieval queries Light–moderate (single-file downloads; test captions ~184 MB)
evals/ The frozen retrieval corpus: 88,566-window db strings in 11 modality combinations, plus precomputed query- and corpus-side embeddings per encoder Heavy (embeddings dominate)
closedqa/ Per-model closed-QA outputs for reference baselines Light
test_vids/ 4,128 raw test-window MP4s (<vid>__s<start>__e<end>.mp4) Heavy

What the records look like

One real record from each of the main files. The dist/ examples all come from the cooking window shown in the anatomy section above, so you can trace a single window from captions to queries to benchmark.

dist/captions_and_meta-{train,val,test}.jsonlone record per window
{
  "id": "1mbyCXQIYxU__s140__e150",
  "split": "test",
  "source_url": "http://youtube.com/watch?v=1mbyCXQIYxU",
  "source_time_range": "02:20-02:30",
  "source_video_category": "Howto & Style",
  "fused_caption": "A close-up shows a pot of rice and brown liquid bubbling and steaming on a stovetop burner, with a red spatula stirring the mixture. The person cooking explains that they are bringing the rice to a boil on medium heat to reduce the liquid …",
  "visual_caption": "The video shows a close-up of a stainless steel pot with a brown liquid inside. The pot is on a black stovetop burner with a flame underneath …",
  "narrative_caption": "The video clip shows a person cooking rice on a stovetop, bringing the rice to a boil and stirring it.",
  "activities_caption": "The person is cooking rice by bringing it to a boil on a stovetop and stirring it with a red spatula.",
  "background_caption": "The background of the video is a kitchen countertop with a black stovetop burner …",
  "speech_transcript": "Now, we're going to bring this to a boil on medium heat just to reduce the liquid. Then we're going to give it a stir,",
  "vlm_primary_scene_text": "Bring to a boil on medium heat to reduce liquid",
  "inferred_video_category": "Food & Drink",
  "inferred_video_subcategory": "Cooking",
  "inferred_title": "How to Cook Rice: Reduce Liquid & Stir",
  "inferred_5_word_summary": "Bring rice to a boil, stir"
}
dist/retrieval_queries-{train,val,test}.jsonl~11.6M generated training queries + val/test pools
{
  "id": "49d28db5-02cc-5c6f-b2b1-10450679d880",
  "window_id": "1mbyCXQIYxU__s140__e150",
  "source_url": "http://youtube.com/watch?v=1mbyCXQIYxU",
  "source_time_range": "02:20-02:30",
  "source_video_category": "Howto & Style",
  "split": "test",
  "generation_modality_source": "asr",
  "text": "how to reduce liquid by boiling on medium heat"
}
dist/question_answer_pairs-{train,val,test}.jsonl~12.9M generated QA pairs
{
  "id": "d9dbc72b-d4f6-5241-a98f-09cdf2fed829",
  "window_id": "1mbyCXQIYxU__s140__e150",
  "source_url": "http://youtube.com/watch?v=1mbyCXQIYxU",
  "source_time_range": "02:20-02:30",
  "source_video_category": "Howto & Style",
  "split": "test",
  "generation_modality_source": "visuals",
  "question": "What type of pot is being used to cook the rice?",
  "answer": "A stainless steel pot."
}
dist/benchmark-retrieval_queries.jsonl2,195 validated benchmark queries (QA twin: benchmark-question_answer_pairs.jsonl)
{
  "id": "9eb8c431-944b-5865-909f-fe07817d41e9",
  "window_id": "1mbyCXQIYxU__s140__e150",
  "source_url": "http://youtube.com/watch?v=1mbyCXQIYxU",
  "source_time_range": "02:20-02:30",
  "source_video_category": "Howto & Style",
  "generation_modality_source": "asr",
  "llm_validation_reason": "The query specifically asks about the reason for stirring while reducing liquid on medium heat, which matches the clip's content showing and explaining this cooking process. It is not a verbatim copy of the text or transcript …",
  "llm_context_source_difficulty": "hard",
  "text": "why do you stir while reducing liquid on medium heat"
}
evals/retrieval/db_strings.jsonlretrieval-corpus text in 11 modality combinations
{
  "id": "-2fmOkN6KH4__s0__e10",
  "text": {
    "dvd": "The video clip starts with a black screen with the words \"Everything Wrong With DEATH WISH\" in white text. The text is in a bold, sans-serif font …",
    "asr": "What? The only 11 seconds",
    "ocr": "Everything Wrong With DEATH WISH In 13 minutes or less Spoilers!! (duh.) 0 00:00:00 Movie Sin Counter Movie Sin Timer WTF? Only 11 seconds of one logo …",
    "fuse": "The clip opens with a bold title card reading Everything Wrong With DEATH WISH and playful warnings about spoilers, set against a dramatic sunset …",
    "asr+ocr": "…", "dvd+asr": "…", "dvd+ocr": "…", "fuse+asr": "…",
    "fuse+ocr": "…", "dvd+asr+ocr": "…", "all": "…"
  }
}
// dvd = dense video description. Matching .npy embeddings per encoder × text
// combo live in evals/retrieval/db_embeddings/; query-side embeddings alongside.
Versioning. v1 is frozen — files at the current paths will not change. Additions (re-captions, extra query-side embeddings, new result CSVs) land under a v2/ prefix, and croissant.json is updated additively. Pin paths with confidence.

Benchmark & evaluation

Every query knows where its evidence lives

Most video-retrieval benchmarks can't tell you why a system failed. AVC-1.8M's benchmark items are modality-attributed: each of the 2,195 retrieval queries and 2,042 QA pairs is labeled with the text layer that generated it — asr, ocr, visuals, or dense — together with a difficulty grade. Scores decompose by evidence source, so “our model is weak on on-screen text” becomes a measurable claim rather than a hunch. All items are LLM-validated and human-reviewed.

Official protocol

  • Rank the full 88,566-window test corpus for each query.
  • Report R@k, MRR, and NDCG; graded relevance credits the ±10 s neighboring windows of the gold window.
  • Report per-modality splits alongside the overall number.

Bring your own embedding

  • Embed the fixed corpus strings (evals/retrieval/db_strings.jsonl — 11 modality-combination text views per window) and the query strings.
  • Rank against the fixed window ids; no re-crawling, no media processing required.
  • Compare against the shipped baseline embeddings in evals/.

A taste of the benchmark

Twelve of the 2,195 retrieval queries — three per modality. Click a column header to sort. The full files are dist/benchmark-retrieval_queries.jsonl and dist/benchmark-question_answer_pairs.jsonl.

QueryModalityDifficultyCategoryWindow
How many planets are in our solar system?asrhardEducationx8ULq9M-aEk__s50__e60
child winning and talking to mommy about eggsasrhardEntertainmentKy62ZtebT_Y__s290__e300
YouTube yearbook from 2016asrnormalEntertainmentN6G2_5sMhuM__s150__e160
old guard outdated textbooks science revolutionocrhardEducationP6Cr_jRVQ6c__s200__e210
Airwheel removable 15000mAh lithium battery power bankocrhardScience & TechnologylgwKFOTjbCU__s820__e830
how to select packages in Cygwin setupocrnormalEducationZVGumut8EJY__s340__e350
child playing on red and blue bouncy castle indoorsvisualshardMusicK5UDgP31D74__s40__e50
man in grey t-shirt standing in park with serious expressionvisualshardEntertainmentJ6Zd2OT6Nds__s70__e80
two women tense conversation in cluttered officevisualsnormalGaming72eSGJVUsDQ__s240__e250
speaker holding black object with 'Cata' sign on platformdensehardNonprofits & ActivismcEhk5qCAAVA__s650__e660
video comparing Mazda Miata appearance to a happy fishdensehardAutos & Vehicles7epWd-nLPSs__s250__e260
man presenting on teamwork and collaboration on stagedensenormalNonprofits & ActivismWbGi7KdxYhU__s30__e40

Training-scale pools of ~11.6M generated queries and ~11.6M QA pairs (attributed the same way) ship in dist/ for fine-tuning and ablations. The evaluation harness and review tooling are being prepared for public release; a code link will appear here.

License & terms

CC BY-NC-SA 4.0 for everything we made

All annotations, captions, entities, embeddings, and benchmark files are released under CC BY-NC-SA 4.0. Source media remain governed by their original platform terms.

Takedown

If a source video is removed from its platform, or you are a rights holder or subject of a video and want it excluded, contact <REDACTED DURING PAPER REVIEW> with the video id. Derived records for removed or objected-to source videos are removed from the distribution.

FAQ

Common questions

Do I need credentials or an account to download?

No. The container allows anonymous public reads — every URL on this page works from a plain curl with no tokens, SAS signatures, or registration.

Can I train on it?

Yes. The train split (1,631,378 windows) ships with generated training pools of ~11.6M retrieval queries and ~11.6M QA pairs, under CC BY-NC-SA 4.0 (non-commercial, share-alike, with attribution).

How do I evaluate a new encoder?

Embed the fixed corpus strings in evals/retrieval/db_strings.jsonl and the benchmark queries with your encoder, then rank against the fixed 88,566 window ids and report R@k / MRR / NDCG per modality split. No media processing is required — the corpus text views and baseline embeddings are precomputed.

Why are some windows missing layers?

Coverage follows content: ~88% of windows have speech (ASR), ~65% carry detected scene text, and 90,060 have music captions — silent or text-free windows simply have nothing to transcribe. Missing layers are empty fields, not dropped rows, so masking is a simple empty-string check.

What if my video is in the dataset?

Email <REDACTED DURING PAPER REVIEW> with the video id and we'll remove its derived records from the distribution. See Takedown.

Changelog

Versions

AUG 2026

v1 — initial public distribution (frozen)

Full caption records for 1.8M windows, the modality-attributed benchmark, the 88,566-window evaluation corpus with precomputed embeddings, closed-QA baseline outputs, and 4,128 raw test-window videos. Paths under v1 will not change; future additions land under v2/.