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 and search history are kept per that user instead of per browser — switch users on the same device and each sees their own.

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 uid, behaviour is exactly as before: kept per browser (clearing browser data resets it).
  • 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 resets their likes and search history), 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. Its blast radius is limited to that user's own like state and search history.

  • 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 likes and search history 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 →