پلیر امن XAPlayer با پایتون: جنگو و فلسک

نصب روی سایت شما۳ دقیقه مطالعه

گرفتن توکن پخش با کتابخانه‌ی requests و نمایش پلیر امن XAPlayer در یک view جنگو یا مسیر فلسک.

همه‌ی راهنماها

یک تابع مشترک برای گرفتن توکن می‌نویسید و آن را در جنگو یا فلسک استفاده می‌کنید. تنها وابستگی، کتابخانه‌ی requests است.

پیش از شروع#

  1. در پنل XAPlayer به «تنظیمات» بروید و در بخش «کلید API» یک کلید بسازید. کلید فقط یک بار نمایش داده می‌شود؛ همان لحظه کپی‌اش کنید.
  2. در «سایت‌های مجاز برای نمایش پلیر» نشانی کامل سایت‌تان را اضافه کنید، مثلاً https://academy.example.com. اگر سایت با www هم باز می‌شود، آن را هم اضافه کنید.
  3. شناسه‌ی دوره را بردارید: در «تنظیمات»، بخش «راهنمای نمایش پلیر در سایت شما» دوره را انتخاب کنید تا شناسه‌اش در نمونه‌کد نوشته شود. همان بخش آخر نشانی صفحه‌ی دوره در پنل هم هست.
.env
# environment (or .env loaded by your settings)
XAPLAYER_API_KEY=xap_sk_...

تابع گرفتن توکن#

xaplayer.py
# xaplayer.py: shared by the Django and Flask examples (pip install requests)
import os
import requests

XAPLAYER = "https://xaplayer.ir/api/v1"


def player_url(course_id: str, user_id: str, name: str = "") -> str:
    res = requests.post(
        f"{XAPLAYER}/embed-tokens",
        headers={"Authorization": f"Bearer {os.environ['XAPLAYER_API_KEY']}"},
        json={"courseId": course_id, "viewer": {"id": user_id, "name": name}},
        timeout=10,
    )
    res.raise_for_status()
    return res.json()["url"]

نمایش پلیر#

courses/views.py
# courses/views.py
from django.contrib.auth.decorators import login_required
from django.http import Http404
from django.shortcuts import render

from xaplayer import player_url


@login_required
def watch(request, course_id):
    if not user_bought(request.user, course_id):  # your own orders check
        raise Http404
    url = player_url(course_id, str(request.user.pk), request.user.get_full_name())
    return render(request, "courses/watch.html", {"player_url": url})


# courses/urls.py
# path("courses/<str:course_id>/watch/", views.watch, name="watch"),

اگر کار نکرد#

نشانهعلت و راه‌حل
جای پلیر خالی است یا مرورگر می‌گوید «اجازه‌ی اتصال ندارد»نشانی سایت در «سایت‌های مجاز» نیست یا با www/بدون www فرق دارد. نشانی دقیق صفحه را اضافه کنید.
خطای ۴۰۱ (unauthorized)کلید API اشتباه است یا کلید تازه‌ای ساخته‌اید و کلید قبلی از کار افتاده. کلید را دوباره کپی کنید.
خطای ۴۰۴ (not_found)شناسه‌ی دوره یا ویدیو اشتباه است یا متعلق به حساب دیگری است.
خطای ۴۰۰ (bad_request)بدنه‌ی درخواست ناقص است: دقیقاً یکی از courseId یا videoId را بفرستید و viewer.id را خالی نگذارید.
پلیر بعد از چند ساعت «زمان صفحه تمام شده» می‌گویدتوکن منقضی شده. هر بار که صفحه باز می‌شود توکن تازه بگیرید و نشانی پلیر را کش نکنید.

XAPlayer را ۱۴ روز رایگان، با ۱۰ لایسنس هدیه امتحان کنید.

دوره‌ی خود را رایگان امتحان کنید