DRM-X 6.0 dove dan logo cabang zaitunDRM-X 6.0Dokumentasi
◎ Bahasa Indonesia

Video terlindungi dengan Django

Gunakan autentikasi Django dan callback izin Anda sendiri. Paket DRM-X tidak membuat tabel video atau pemberian akses.

Lihat MarkdownContoh langsungDiperbarui 2026-09-25
Unduh perangkat platform ini

SDK versi pratinjau, contoh aplikasi, dan kode sumber. Pertahankan struktur folder hasil ekstraksi.

Semua platform dan kit lengkap · Pahami proses integrasi

Tiga tempat yang Anda atur#

  1. Atursettings.py

    Tambahkan drmx dan konfigurasikan DRMX, termasuk AUTHORIZE.

  2. Otorisasi

    Aplikasi Anda: drmx_access.py

    Implementasikan authorize(user, video_id) menggunakan sistem yang ada.

  3. Ruteurls.py

    Termasuk drmx.urls; gunakan ulang log masuk normal Anda dan Middleware CSRF.

1. Pasang paket wheel#

# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whl

Gunakan Python 3.12+ dan versi Django yang didukung (5.2–6.0). Tambahkan drmx ke INSTALLED_APPS. Pertahankan autentikasi, sesi, dan CsrfViewMiddleware. Pemasangan baru tidak memerlukan perintah migrasi DRM-X; aplikasi Anda sendiri mungkin tetap memerlukan migrasi normalnya.

2. Atur pengaturan dan rute#

# settings.py — keep your existing application settings
DRMX = {
    'SITE_ID': os.environ['DRMX_SITE_ID'],
    'SITE_KEY': os.environ['DRMX_SITE_KEY'],
    'ACCESS_KEY': os.environ['DRMX_ACCESS_KEY'],
    'INSTANCE_ID': 'my-website',
    'POLICY': 'multi-tier-standard',
    'AUTHORIZE': 'myapp.drmx_access.authorize',
}
# urls.py — add to your existing urlpatterns
path('video/', include('drmx.urls'))

Impor os pada pengaturan dan path / include dalam urls seperti biasa. Ganti myapp dengan modul aplikasi Anda.

3. Kembalikan konten yang diizinkan#

Buat myapp/drmx_access.py. Pemanggilan repositori di bawah hanya contoh; gunakan kueri pembelian, keanggotaan, atau pendaftaran kursus Anda saat ini.

def authorize(user, video_id):
    video = customer_catalog.find_authorized_video(user.id, video_id)
    if video is None:
        return None
    return {'content_id': video.drmx_content_id,
            'content_type': 'vod', 'title': video.title}

Untuk pengujian lokal pertama, izinkan satu pengguna uji yang ada dan satu ID video situs, lalu kembalikan Content ID yang sudah diterbitkan. Batasi aturan sementara itu hanya untuk pengujian lokal. Berkas examples/sdk/django/authorization.py yang disertakan menolak semua akses sampai Anda mengimplementasikannya.

Dalam produksi, jalankan kueri database pada setiap pemanggilan. Kembalikan None jika izin tidak ada, kedaluwarsa, atau dicabut. Jika kebijakan tidak diberikan, gunakan default yang dikonfigurasi.

4. Masuk dan buka pemutar#

Buka /video/lesson-123/ menggunakan ID video yang dipilih di situs Anda. ID string dan UUID didukung. SDK menyediakan halaman pemutar dan endpoint sesi serta menjalankan kembali callback pada setiap permintaan.

Pertahankan perlindungan Django yang normal#

Pertahankan validasi CSRF yang disertakan dan endpoint dengan origin yang sama. Pemutar saat ini mengirim token CSRF tersamarkan dalam URL endpoint; jangan catat string kuerinya pada log akses dan pertahankan perilaku no-store/no-referrer. Gunakan HTTPS dan cookie sesi yang aman.

Meningkatkan instalasi lama dengan tabel DRM-X? Pertahankan sejarah migrasi dan baca legacy/README.md sebelum menghapus aplikasi lama. SDK yang baru tidak menghapus tabel tersebut.

Periksa sebelum digunakan dalam produksi#

  • Masuk sebagai pengguna yang diperbolehkan dan memutar video yang diterbitkan dalam peramban yang didukung.
  • Uji pengguna yang belum login dan belum membayar, lalu cabut izin atau buat izin kedaluwarsa. Permintaan sesi baru harus ditolak.
  • Ubah Content ID di browser atau ID video situs. Server harus memeriksa pilihan baru.
  • Tetapkan origin HTTPS publik yang tepat, pertahankan perlindungan sesi/CSRF dari framework, dan nonaktifkan kode identitas demo.

Sesi dan lisensi DRM yang ada memiliki masa berlaku sendiri. Permintaan baru memeriksa perubahan izin; perubahan tersebut tidak menghapus lisensi yang sudah diterbitkan.