OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Media content record validation for broadcast, streaming, and digital distribution pipelines. Enforces content type classification aligned with EIDR (Entertainment Identifier Registry) taxonomy, BBFC/PEGI age rating standards, ISO 639-1 language codes, ISO 3166-1 territory rights validation, and title length constraints for EPG and catalogue system compatibility. Prevents unrated, uncategorised, or territorially unrestricted content from entering distribution pipelines where OFCOM broadcast licensing, AVMS Directive (EU) 2018/1808, and rights clearance obligations apply.
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| content_id_required | content_id | error | content_id is required |
| title_required | title | error | title is required |
| title_max_length | title | warning | title exceeds 255 characters — will be truncated in EPG and streaming catalogue systems |
| content_type_required | content_type | error | content_type is required |
| content_type_values | content_type | error | content_type must be one of: film, series, episode, season, documentary, short, live, clip, podcast, podcast_episode, album, track, ebook, audiobook, game, trailer |
| content_rating_values | content_rating | warning | content_rating must be a valid BBFC or PEGI classification: U, PG, 12, 12A, 15, 18, R18, unrated, exempt, or PEGI_3/7/12/16/18 |
| language_format | language | warning | language must be a valid ISO 639-1 two-letter lowercase code (e.g. en, fr, de, es, zh) — required for AVMS Directive quota reporting |
| publish_date_format | publish_date | error | publish_date must be a valid date (YYYY-MM-DD) |
| duration_seconds_min | duration_seconds | error | duration_seconds must be >= 0 |
| duration_seconds_anomaly | duration_seconds | warning | duration_seconds exceeds 86,400 (24 hours) — verify this is not a unit error (milliseconds stored as seconds) |
| views_min | views | error | views must be >= 0 |
| channel_id_required | channel_id | error | channel_id is required |
| rights_territory_required | rights_territory | error | rights_territory is required |
| rights_territory_format | rights_territory | error | rights_territory must be a 2-letter ISO 3166-1 alpha-2 country code (e.g. GB, US, DE) or WORLDWIDE — unvalidated territory values risk rights clearance violations |
Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →