Editorial guide·

Disclosing AI video: what YouTube, TikTok and Instagram each give you to do it with

Three platforms, three different disclosure mechanisms, and one of them does not exist. What the upload APIs actually expose, and why a line in the description is not enough on its own.

UF
Unfaced Research· Faceless Systems
5 min read·930 words·Last updated 20 October 2026

Most writing about AI disclosure argues about whether you should. This post is about something more boring and more immediately useful: the mechanisms each platform actually gives you, because they are not the same and one of them is missing entirely.

We publish to all three, so we had to find this out properly. What follows is the mechanics, not legal advice. Platform policies change and yours is the account at risk, so read the current policy page before you rely on any of this.

YouTube: a machine-readable flag on upload#

YouTube's upload API has exposed a field called status.selfDeclaredAlteredContent since March 2024. Setting it is the same declaration as ticking the "altered or synthetic content" box in Studio, except it happens at upload time without a human clicking anything.

This is the good case. The disclosure is structured data attached to the video, YouTube can surface it wherever it decides to, and there is no question later about whether you declared.

TikTok: an AIGC label, also on upload#

TikTok's publish endpoint takes post_info.is_aigc. Same idea, same benefit: a machine-readable label that travels with the post rather than living in text a viewer may never expand.

Instagram: nothing#

Instagram's Reels publishing API has no machine-readable AI flag, under any name, documented or not. The caption is all there is.

Sit with that for a second, because it changes what "disclosed" can even mean on that platform. On YouTube and TikTok you can point at a field. On Instagram you can point at a sentence in your own caption and nothing else.

Why the line is worth writing anyway, on every platform#

Put a disclosure sentence in the description on every platform, whether or not you set the platform flag. It can be as short as "Contains AI-generated content." In German: "Enthält KI-generierte Inhalte."

On YouTube that looks redundant. It isn't, for three reasons.

The flag is not visible everywhere the description is. A platform label renders where the platform chooses to render it. Embeds, shares, third-party players and several mobile surfaces show your description and not much else.

Defence in depth costs you one sentence. The cost of being over-disclosed is that some viewers learn something you were going to tell them anyway. The cost of being under-disclosed is a strike against a channel you spent months building.

It is the same line in both directions. If you publish in two languages, the disclosure has to exist in both. Writing it once per locale and appending it automatically is the only version of this that survives a hundred uploads.

Record what you actually did#

Almost nobody builds this part, and it is the one that matters six months later: store what was disclosed, per upload, at the time of upload.

Store three things on every publish: which method was used (description line only, or platform flag plus description line), the exact disclosure text that went out, and whether a platform flag was even available for that platform. Keep old rows as they were, so a policy change today does not rewrite what happened in March.

If a platform ever asks, "we always disclose" is only a claim. A row per upload naming the method and the text is a record.

Content credentials, one layer lower#

Separately from platform labels, our final renders are signed with a C2PA manifest embedded in the file itself. C2PA is the cross-industry content-credentials standard, and the manifest travels with the video rather than with the post.

The current limits: our signing identity is self-signed today, which proves the manifest is intact and unmodified since we wrote it, and does not yet prove who we are to a verifier that does not already trust us. A real certificate chain is outstanding work. We would rather say that than imply a stronger guarantee than we have.

How it works in Unfaced today#

In Unfaced, platform disclosure is a setting, and it is off by default. When it is switched on, YouTube uploads carry the selfDeclaredAlteredContent flag and TikTok posts carry the AIGC label. When it is off, neither flag is set. No automatic disclosure sentence is added on any platform: YouTube descriptions and Instagram captions go out without one, and a TikTok post carries the caption you write.

That makes disclosure your decision, not the pipeline's. If a video contains realistic synthetic media (a real person made to appear to say something they didn't, AI-generated music, a realistic scene that never happened), YouTube requires the disclosure. Uploads from Unfaced start as private, so you can set the altered-content option in YouTube Studio and add the sentence before the video goes public.

Practical checklist#

  • Set the machine-readable flag where one exists. YouTube and TikTok both have one.
  • Put the sentence in the description regardless, in every language you publish in.
  • Log what you disclosed, per upload, with the text and the method.
  • Do not assume Instagram has a field. It does not.
  • Read the current policy page for each platform before you launch. This post describes API surfaces we have verified in our own integration, not the policies that govern your account.

Disclosure is the part of publishing that is easy to automate and easy to forget, so decide once how you handle it and write that decision down. If you are still deciding what to publish in the first place, the format library lists structures with their measured retention attached, and the free tools cover the writing decisions that come before any of this.