VideoObject: ako správne nastaviť kapitoly, prepisy a náhľady

Prečo venovať pozornosť štruktúrovanému VideoObject: význam kapitol, prepisov a náhľadov

Videoobsah sa dnes nehodnotí len na základe titulku a popisu, ale aj podľa vnútornej štruktúry. Precízne implementovaný VideoObject, ktorý obsahuje kapitoly (Clip), prekres prepisu a náhľady (thumbnails), výrazne zlepšuje:

  • pokrytie relevantných dopytov v rámci vyhľadávania,
  • viditeľnosť videa v sekcii „Key moments“,
  • dostupnosť multimediálneho obsahu pre rôzne kanály (napr. SERP, sociálne siete, interné vyhľadávanie),
  • konzistenciu dát naprieč platformami a zariadeniami.

V tomto článku ponúkame detailný praktický návod na správne modelovanie týchto prvkov a ich súlad s odporúčaniami pre „Štruktúrované dáta a dátovú konzistenciu“.

Základné polia a konzistentné nastavenia pre VideoObject

Základom správneho VideoObject je vyplnenie minimálneho súboru polí s konzistentnými hodnotami, ktoré zaručujú správne rozpoznanie a spracovanie videa vyhľadávacími nástrojmi:

  • Identifikačné údaje: name (názov videa), description (stručný popis), inLanguage (jazyk videa), uploadDate vo formáte ISO 8601, duration vo formáte ISO 8601 (napr. PT12M5S pre 12 minút a 5 sekúnd), contentUrl (priame URL na video súbor), embedUrl (iframe URL pre vložené prehrávanie).
  • Náhľady: použite thumbnailUrl (jednu alebo viac URL pre náhľadové obrázky) alebo štruktúru image s typom ImageObject zahrňujúcou url, width a height.
  • Informácie o vydavateľovi a autorovi: definujte publisher ako organizáciu vrátane jej loga (Organization s vlastnosťou logo), ďalej creator/author a ak relevantné, aj license.
  • Technické parametre (voliteľné, no odporúčané pre lepšiu identifikáciu médií): encodingFormat, contentSize, bitrate (uvoľnite pod MediaObject), regionsAllowed (geografické obmedzenia), expires (dátum expirácie obsahu).

Modelovanie kapitol vo videu pomocou Clip a hasPart

Kapitoly vo videu by mali byť definované ako pole objektov typu Clip v rámci atribútu hasPart VideoObjectu. Každý Clip by mal obsahovať nasledovné vlastnosti:

  • name – názov kapitoly, ktorý jasne opisuje obsah sekcie,
  • startOffset – počiatočný čas kapitoly vo videu v sekundách,
  • endOffset – (voliteľné) koncový čas kapitoly,
  • url – priama adresa so štartovacím časovým parametrom (deep-link na konkrétnu sekundu),
  • position – poradové číslo kapitoly pre jednoznačné zoradenie.

Takto definované kapitoly umožnia prehliadačom a vyhľadávačom zobrazovať tzv. „Key moments“, teda dôležité časové úseky videa.

<script type="application/ld+json"> 
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "@id": "https://www.example.com/video/ai-seo#video",
  "url": "https://www.example.com/video/ai-seo",
  "name": "AI SEO: Entitné stratégie v praxi",
  "description": "Praktický workshop s kapitolami o entitách, clustroch a internom prelinkovaní.",
  "inLanguage": "sk",
  "uploadDate": "2025-09-01T09:00:00+02:00",
  "duration": "PT18M42S",
  "contentUrl": "https://cdn.example.com/videos/ai-seo.mp4",
  "embedUrl": "https://player.example.com/embed/ai-seo",
  "thumbnailUrl": [
    "https://cdn.example.com/videos/ai-seo/cover-1280.jpg",
    "https://cdn.example.com/videos/ai-seo/cover-640.jpg"
  ],
  "hasPart": [
    {
      "@type": "Clip",
      "name": "Úvod a ciele",
      "startOffset": 0,
      "endOffset": 75,
      "position": 1,
      "url": "https://www.example.com/video/ai-seo?t=0"
    },
    {
      "@type": "Clip",
      "name": "Entitná mapa a zdroje dát",
      "startOffset": 76,
      "endOffset": 420,
      "position": 2,
      "url": "https://www.example.com/video/ai-seo?t=76"
    },
    {
      "@type": "Clip",
      "name": "Topic clustre a interné linky",
      "startOffset": 421,
      "endOffset": 900,
      "position": 3,
      "url": "https://www.example.com/video/ai-seo?t=421"
    }
  ],
  "potentialAction": {
    "@type": "SeekToAction",
    "target": "https://www.example.com/video/ai-seo?t={seek_to_second_number}",
    "startOffset-input": "required name=seek_to_second_number"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Media",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.example.com/static/logo-600x60.png",
      "width": 600,
      "height": 60
    }
  }
}
</script>

Prepisy videa: integrácia transcriptu, titulkov a viacjazyčnej podpory

  • Prepis môže byť uvedený priamo ako text v poli transcript v rámci VideoObjectu alebo externý súbor v caption ako MediaObject (napr. vo formátoch VTT alebo SRT), ktorý obsahuje link na prepis a jazykové označenie inLanguage.
  • Viacjazyčnosť sa rieši pomocou viacerých caption objektov v rôznych jazykoch. Primárny jazyk zachovajte v transcript.
  • Časované kapitoly v texte prepisu by mali presne korešpondovať s hodnotami startOffset v definícii kapitol, čo zaručuje konzistentné spracovanie a navigáciu vo videu.
<script type="application/ld+json"> 
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "@id": "https://www.example.com/video/ai-seo#video",
  "transcript": "00:00 Úvod... 01:16 Entitná mapa... 07:01 Topic clustre...",
  "caption": [
    {
      "@type": "MediaObject",
      "inLanguage": "sk",
      "encodingFormat": "text/vtt",
      "contentUrl": "https://cdn.example.com/videos/ai-seo/subtitles/sk.vtt"
    },
    {
      "@type": "MediaObject",
      "inLanguage": "en",
      "encodingFormat": "text/vtt",
      "contentUrl": "https://cdn.example.com/videos/ai-seo/subtitles/en.vtt"
    }
  ]
}
</script>

Náhľady a filmstripy: ako správne definovať thumbnailUrl, image a sprite mapy

  • Thumbnail slúži ako vizuálny signál kvality a atraktivity videa. Odporúča sa uviesť aspoň dve veľkosti v poli thumbnailUrl, napríklad 1280×720 a 640×360, alebo alternatívne použiť objekt image typu ImageObject s definovanými rozmermi.
  • Filmstrip alebo sprite – hoci nie je štandardnou vlastnosťou schémy, je vhodné zahrnúť odkaz na sprite mapu ako MediaObject v poli hasPart, kde encodingFormat môže byť image/jpeg alebo image/webp. Prehrávač následne mapuje čas videa na konkrétnu súradnicu v sprite obrázku.
  • Konzistentnosť odkazov – URL náhľadov nie je vhodné meniť pri bežných aktualizáciách. Pri potrebe force refresh použite radšej query parameter (?v=169), aby nedošlo k strate referencií.
<script type="application/ld+json"> 
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "thumbnailUrl": [
    "https://cdn.example.com/videos/ai-seo/cover-1280.jpg",
    "https://cdn.example.com/videos/ai-seo/cover-640.jpg"
  ],
  "image": {
    "@type": "ImageObject",
    "url": "https://cdn.example.com/videos/ai-seo/cover-1920.jpg",
    "width": 1920,
    "height": 1080
  },
  "hasPart": [
    {
      "@type": "MediaObject",
      "name": "Preview sprite",
      "encodingFormat": "image/webp",
      "contentUrl": "https://cdn.example.com/videos/ai-seo/sprite.webp"
    }
  ]
}
</script>

URL vzory, SeekToAction a zabezpečenie kompatibility deeplinkov

  • Implementujte SeekToAction s urlTemplate obsahujúcim parameter sekúnd ({seek_to_second_number}), ktorý je funkčný aj bez potreby JavaScriptu.
  • Deeplink jednotlivých kapitol by mal vždy smerovať na ten istý základný URL videa s časovým parametrom, čím predchádzate kanibalizácii a duplikácii obsahu.
  • Zabezpečte jednotnosť parametrov (?t= alebo ?start=) naprieč prehrávačom, oEmbed implementáciou a štruktúrou dát.

Dátová konzistencia a jeden zdroj pravdy pre video metadáta

Pre správne nasadenie a udržanie aktuálnych dát zaveste video metadáta na jednotný správny zdroj, napríklad CMS alebo centralizovaný JSON súbor. Z tohto zdroja generujte automaticky:

  • JSON-LD so štruktúrou VideoObject, vrátane kapitol Clip a akcie SeekToAction,
  • XML feedy pre video platformy ako YouTube alebo Vimeo, ktoré vyžadujú špecifický formát metadát,
  • otázky a odpovede na základe obsahovej štruktúry videa pre lepšiu SEO optimalizáciu,
  • automatické aktualizácie na stránke pri zmene obsahu videa alebo súvisiacich dát, čím sa minimalizuje potreba manuálnych zásahov.

Dôsledná synchronizácia týchto zdrojov prináša najmä zvýšenú kvalitu indexácie videa vyhľadávačmi a lepší používateľský zážitok pri jeho prehrávaní.

Nezabúdajte pravidelne overovať správnosť údajov a funkčnosť deeplinkov, aby bolo zabezpečené hladké fungovanie video obsahu naprieč rôznymi zariadeniami a prehliadačmi.