Skip to main content

VCMS Video System · Integration Guide

VCMS embeds into your platform pages via an iframe (just like embedding YouTube). This guide covers two things:

  1. Embedding — dropping the "recommendation strip / full video page / single video player" into your page.
  2. Event integration (postMessage) — how user interactions inside a component (clicking "More", clicking a video) notify your platform, so your platform can handle them (open a new window, use your own router, record analytics, etc.).

Three embed modes​

PurposeURLNotes
Recommendation strip{BASE}/strip?platform={platformId}Horizontal strip for your homepage; "More" opens the full portal
Full video page (no header){BASE}/embedFull video grid with the top nav removed, for full-page embedding
Single video player{BASE}/watch/{videoId}Player page for one video (autoplay)

{BASE} is the portal domain (e.g. https://vcms-qa.acorners.com). The platform ID comes from each platform's "Embed code" under Platforms in the admin console.

Optional parameter · user identifier uid​

All three embed modes accept an optional uid parameter identifying this user on your platform:

PurposeURL with uid
Recommendation strip{BASE}/strip?platform={platformId}&uid={userId}
Full video page{BASE}/embed?platform={platformId}&uid={userId}
Single video player{BASE}/watch/{videoId}?platform={platformId}&uid={userId}

With it, likes / dislikes, search history and favorites are stored on the server for the "platform + user" pair. The same uid restores them in another browser. The component's "Me" entry opens the favorites list for viewing and playback. Authorized admin accounts can inspect observable visits, searches, plays, reaction changes, favorite changes, share actions and download initiations.

Rules:

  • Only takes effect together with platform. The identity is the pair "platform + user" — the same user ID on two different platforms means two different people, so uid alone cannot form an identity and is treated as absent.
  • Without a valid uid, reactions, search history and favorites are kept in the current browser; clearing browser data removes them. These actions are not attached to a named user's admin history.
  • Allowed characters: letters, digits, - and _; length 1–64. Characters such as &, #, spaces or non-ASCII truncate or break the URL and are not accepted.
  • Empty, over-long or otherwise invalid values do not raise an error — they are treated as absent.
  • The value is yours to choose, but use a hash of your internal user ID (e.g. a3f8c91e4b7d2065f1c8e93a4d6b0271). Do not use a phone number, e-mail address or username — uid appears in plain text in the URL and reaches browser history and access logs. Do not use a sequential ID like 1001 either: anyone can edit one digit and act as another user.
  • The same user must always get the same value (changing it selects a different set of reactions, search history and favorites), and one value must map to exactly one person.

⚠️ uid is a plain-text parameter that anyone can edit in the address bar, so it is NOT an authentication credential. Do not use it to carry a login state or anything confidential. Anyone who knows or forges the same platform and uid can read or change that user's reactions, search history and favorites, and generate activity attributed to that user.

Watch-page features​

  • Sharing, downloads, favorites, likes and dislikes have separate per-platform switches. Disabled entries are hidden and new corresponding actions are rejected by the server; existing data is retained.

  • PC downloads save an MP4 file locally. In a phone browser, users manually save it to their photo library using the browser's available options; a webpage cannot guarantee direct album storage. Videos without an available MP4 show an unavailable message.

  • A download-initiation record means the server started serving the file, not that the download or album save completed. Share records describe observable clicks, not confirmed receipt.

  • Descriptions can display clickable links configured in the admin console. The watch-page divider has its own color setting on both desktop and mobile.

  • Hotlink protection: your domain must first be added to the allowed-referrer whitelist (contact us to enable it), otherwise videos return 403.

  • Responsive: use 100% width to fit the container and adjust height as needed; for the single video player, wrap it in a 16:9 box.

  • Colors: the strip / full-page background, title & text, and "More" colors can be themed per platform (configured on our side in the admin console — no change to your embed code).

  • User identifier: to keep reactions, search history and favorites per user on your platform, add &uid= to the embed URL — see the section above.

  • The admin "Teaching" page has a live preview + copy-paste code for every embed mode (including a simulated uid input).

Next: Events API →