# Kajabi, Thinkific and Teachable

Connect a trusted learner login to server-side enrollment checks before opening protected video.

再生が許可されるまでの流れ

視聴できるユーザーは、お客様のバックエンドが判断します。DRM-X は再生の認可情報を返し、プレーヤーはその情報を使って DRM ライセンスをリクエストします。

- 01**視聴者**

お客様のサービスにログインし、動画の再生をリクエストします。

- 02**お客様のバックエンド**

購入履歴、サブスクリプション、その他の視聴権限を確認します。

- 03**DRM-X**

選択した再生ルールを適用し、再生設定と認可情報を返します。

- 04**プレーヤー**

受け取った認可情報を使い、再生に必要な DRM ライセンスをリクエストします。

バックエンドはアクセスを決定します。DRM-Xは署名されたポリシーを強制します。暗号化されたメディアとDRMのライセンスは、別の配送パスに従います。

## Authenticate the learner first[#](#identity)



A school API key identifies the school administrator, not the learner viewing a page. Do not accept a user ID or email address from an iframe parameter, JavaScript variable or unsigned form as proof of identity.



This preview uses a customer-controlled login portal. After authenticating the learner, that portal signs an RS256 JWT for the bridge, valid for at most 60 seconds, with issuer, audience, subject, issued-at, expiry, a unique jti and the requested resource. POST it to /sso with the registered portal ID.



Configure the portal’s issuer and HTTPS JWKS URL on the server. Map each portal subject to a verified provider user ID and an allowed resource list in identities. The one-time JWT is verified before this mapping is used. The bridge then rechecks the provider API for every new playback request.



[Download third-party integration source](https://drm-x6-cdn.1aicloud.com/drmx-frameworks-1.3.0-preview.2-f4ee10f26cdf.zip)





## Platform access checks[#](#providers)



Thinkific: configure apiKey and subdomain. Map each protected resource to its course ID. The adapter checks the matching user and course, activation date, expiry and free-trial state. A free-preview enrollment does not unlock a full protected lesson.



Kajabi: configure a server accessToken and map resources to offer IDs. The adapter reads the contact’s currently granted offers. Map the portal account to a verified Kajabi contact ID. Token renewal and plan-level API availability remain part of the customer’s host setup.



Teachable: configure apiKey and map the protected resource to a course ID. The preview reads the active course-enrollment list. Verify the response format and pagination against your school before enabling it; unrecognized responses are denied.



Course enrollment and offer access do not automatically implement lesson drip schedules, cohort rules or custom refund policies. Connect those rules in the backend before exposing affected resources, or keep those resources disabled.





## Hosted-school acceptance[#](#acceptance)



These adapters are integration previews, not app-store listings or verified one-click installs. No licensed Kajabi, Thinkific or Teachable school was available for end-to-end testing. The authenticated portal is required unless you replace it with an equally verified platform login flow.



Test a paid learner, another account, an expired or revoked enrollment, a future activation date, token replay, API errors and an altered Content ID. Keep protected video on the bridge origin; use a top-level link if the hosted course editor cannot run the required scripts.



[Thinkific API documentation](https://developers.thinkific.com/api/api-documentation/)



[Kajabi contact offers API](https://help.kajabi.com/api-reference/contacts/list-contacts-offers)



[Teachable active enrollments API](https://docs.teachable.com/reference/showcourseenrollments)

<!-- Canonical: https://docs.drm-x.com/ja/integrations/hosted-learning-platforms -->
<!-- Language: ja -->
