Upload Date Is Not Recording Date

Someone sends you a link and asks what's in it. Three layers of the stack told me confident lies in a row. A missing dependency reported as fact, ninety-five minutes of fluent invention from a wrong-language model, and a year-old talk stamped with last week's date. None of them errored.

Upload Date Is Not Recording Date

Fourth in a series on verification infrastructure. The previous pieces were about gates you build into your own systems. This one is about the machines that tell you things, and the afternoon three of them lied to me in a row, confidently, without a single error message.


A simple request

Someone sends you a link to a talk and asks what's in it. That's the whole task. It is not a research problem, it has no adversary, and there is nothing at stake beyond an hour of someone's attention.

I ran that task twice in one afternoon and got three different confidently wrong answers out of three different layers of the stack. They were not crashes, they were answers. Well-formed, plausible, delivered without hesitation. Every one of them would have been believed if I hadn't happened to check.

That is the interesting property, and it's why this is worth writing down. In collection work, the failures that hurt you are never the ones that throw. They're the ones that return.


Lie #1: "This video has no captions"

The first step is boring: ask the standard tool whether the video has a transcript. It answered clearly. No automatic captions, no subtitles, nothing available. It also mentioned, as an aside, that only images were available for download.

Both statements were false. The video had audio and the platform had captions machinery available.

What actually happened: the platform now requires solving a JavaScript challenge to hand over the full media manifest. The download tool needs a JavaScript runtime to do that. No runtime was on the path, so the tool quietly fell back to a degraded interface, and that interface truthfully reported that it, personally, could see no captions. The tool then relayed this as a fact about the video.

Sit with the shape of it. An environment defect (a missing dependency) was laundered into a fact about the world. There was no error, no warning worth noticing, no non-zero exit. If I had stopped there, the honest-sounding report would have been "that video has no transcript available," and it would have been wrong, and nothing in the pipeline would ever have contradicted it.

The lesson generalizes well past this one tool: when a collection tool reports absence, you have learned about the tool as much as about the target. "Not found" and "I was unable to look" are wildly different claims, and most software renders them in the same words.


Lie #2: ninety-five minutes of fluent invention

Fine. No captions, so transcribe the audio. Pull the audio track, run a well-regarded open speech-recognition model, get text.

The text came back clean. Timestamped, punctuated, conversational. It opened like this:

We're in front of the airport. We're going to let you guys know that the bus is not there. If you go past the bus, you'll be able to see that the bus is not there.

The actual audio is a Mandarin-language talk about converting energy into intelligence and the limits of scaling model training. There is no airport. There is no bus.

The model I'd selected was an English-only variant. Handed non-English speech, it did not fail, refuse, or flag low confidence. It did what such a model does: produced the most probable English text for sounds that were never English. The output has the cadence and shape of a real transcript. Skimming it, you would not blink. It is, in the most precise sense, a hallucination with perfect posture.

I caught it on the ten-minute video because "the bus is not there" is conspicuous nonsense. On the ninety-nine-minute one, the same misconfiguration ground through about ninety-five minutes of audio producing paragraphs that were plausible. Vague business-conference filler, topic drift, a stray mention of research and teams. Nothing that screams fabrication. If that had been a talk I couldn't independently sanity-check, I might well have quoted it.

The failure of imagination on my part was assuming a wrong-language transcript would look broken. It doesn't. It looks finished.

The fix is unglamorous and worth stating plainly: decide what language you're listening to before you decide what was said. Run short probe windows through a multilingual model, take a vote across several points in the recording, and if the votes disagree or confidence is weak, refuse to transcribe at all rather than emit something. In this case the probes agreed at 0.99 and above on Mandarin, at three separate points in the file. Two minutes of checking would have saved ninety-five minutes of computation and a completely fictional document.

Refusing is the important half. An empty result is annoying; a fluent wrong one is dangerous, because it enters your notes and never announces what it is.


Lie #3: the date

Now the transcript is real, in the right language, and says substantive things. One problem remains, and it's the one that would have caused actual damage.

The video carried an English headline framing it as a current, pointed statement about a rival lab. The kind of quote you'd build an analysis around. Uploaded eight days before I watched it.

It is a re-upload. The recording is a Chinese-language podcast from roughly a year earlier. I know the vintage because the speaker states the month on tape while describing what his company had shipped "so far," and everything he describes as recent is, by the time of the upload, a year stale. The provocative English headline appears nowhere in his remarks. It was written by whoever re-posted the video.

Nothing here is exotic. Re-uploading old material with a fresh, aggressive title is ordinary engagement farming, and it works because every platform surfaces upload date and almost nothing surfaces recording date. Every automated pipeline downstream inherits that confusion. Mine happily recorded a 2026 timestamp on a 2025 conversation.

Consider what that costs if it goes unnoticed. You attribute a year-old position to someone as their current view. You build a competitive read on a stale snapshot. You cite a "recent statement" that predates the events you're using it to explain. None of those errors involve a single fabricated word. Every quote is real. The transcript is accurate. Only the when is wrong, and the when is doing most of the analytical work.

So the capture pipeline now stamps every transcript with a header that says, in as many words: this is the upload date, it is not the recording date, re-uploads are common, confirm the vintage before citing this as current. It's a banner a human has to clear. That's deliberate.

We considered resolving it automatically (parse the description for "originally recorded on," check for re-upload markers) and rejected it. That text is written by the same person who wrote the misleading headline. Machine-parsing an attacker-controlled field and promoting the result to "verified provenance" doesn't remove the uncertainty; it hides it behind a green checkmark. An honest unresolved flag beats a confident wrong resolution every time.

But there is a better source, and it's the one that actually worked here: the recording usually dates itself. Speakers say the month. They describe what they shipped "recently." They reference events whose dates you already know, and they discuss competitors' products in the present tense. That evidence sits inside the content, which is the one layer a re-uploader can't cheaply rewrite. You can retitle a video in four seconds; re-voicing an hour of a founder's speech to move it forward a year is a different order of effort. So the hierarchy for dating a recording runs: in-band content evidence first, external corroboration of the events it mentions second, publisher-supplied metadata a distant last. That inverts the order most pipelines use, which is exactly why most pipelines get the date wrong.

It's still a human step. That's fine. It's a five-minute one, and it's the step that determines whether everything downstream is analysis or fiction.


What the three have in common

Read them together and the pattern is sharper than any one of them:

what it said what was true
Download tool "no captions exist" "I lack a dependency required to look"
Speech model a fluent English transcript the audio was not English
Platform metadata uploaded 2026 recorded 2025

Not one raised an error. Each returned a well-formed answer of exactly the type requested. Each was wrong in a way that would survive casual review, and two of the three would survive careful review, because there's nothing in the artifact to review. The transcript is internally consistent. The date is a real date.

This is the through-line of everything in this series. A gate that has silently become a no-op reads greener than a working one. A held-out metric wired to nothing looks exactly like a held-out metric that's finding no problems. A speech model given the wrong language produces a document with better prose than most real transcripts. The absence of complaint is not evidence of correctness. In badly-behaved systems, it's mildly negative evidence, because a system that's genuinely working usually has something to say about the hard cases.

So the pipeline that came out of this afternoon has four rules, each one a scar rather than a precaution: adjudicate language before transcribing and refuse when the vote is weak; treat a missing runtime as an error rather than a finding about the target; separate upload date from recording date structurally and make a human close the gap; and never machine-resolve provenance from fields the publisher controls.

Cheap, all of them. Two minutes of probing, one dependency check, one banner, one refusal. Together they cost less than the single wrong document they prevent.


The honest limits

The content fingerprint we use to notice the same material re-uploaded under a new identifier is computed from those probe windows. It's robust to punctuation and casing, and it is not robust to re-encoding that shifts timing. A re-upload trimmed by three seconds at the head defeats it. It catches lazy duplication, which is most duplication, and it should not be described as more than that.

Machine transcripts carry homophone errors. Everything above is fine for reading and orientation; anything destined for a quotation gets checked against the audio first. Especially names, numbers, and dates. The three things that are simultaneously the most likely to be misheard and the most likely to be quoted.

And the language check is itself a model, with its own failure modes. Probing multiple windows and demanding agreement reduces that risk. It doesn't eliminate it. What it does is convert a silent failure into a loud refusal, which is the only trade worth making.


Matrix CR Studio builds verification infrastructure for post-quantum migration and sovereign AI systems. The kind of work where "looks done" and "is provably correct" are different planets, and only the second one ships.

Read more