VCMS Video System · Integration Guide
VCMS embeds into your platform pages via an iframe (just like embedding YouTube). This guide covers two things:
- Embedding — dropping the "recommendation strip / full video page / single video player" into your page.
- 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
| Purpose | URL | Notes |
|---|---|---|
| Recommendation strip | {BASE}/strip?platform={platformId} | Horizontal strip for your homepage; "More" opens the full portal |
| Full video page (no header) | {BASE}/embed | Full 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:
| Purpose | URL 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, souidalone 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 —uidappears in plain text in the URL and reaches browser history and access logs. Do not use a sequential ID like1001either: 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.
⚠️
uidis 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
uidinput).
Next: Events API →