Các hướng dẫn này ánh xạ khái niệm của ngành lên đối tượng nền tảng đang có (bouquet, line, gói, tài khoản đối tác, node, API). Đây là ánh xạ khái niệm, không phải tính năng riêng của ngành, và tài khoản đối tác là tài khoản uỷ quyền, không phải tenant tách biệt.
Ánh xạ khái niệm
Không có gì trong panel được gọi là chương trình hay người ủng hộ. Bảng cho biết đối tượng nào đóng vai trò nào; các chương bên dưới thiết lập chúng theo thứ tự đó.
| Trong ngành của bạn | Trên nền tảng | Ở đâu trong panel |
|---|---|---|
| Kênh của studio | Kênh trực tiếp: một luồng với nguồn, EPG và định dạng đầu ra | Streams → thêm live stream (URL nguồn hoặc RTMP push) |
| Thư viện chương trình | Danh mục VOD: phim và series có mùa và tập, danh mục và metadata | Movies và Series, hoặc job ingest VOD |
| Hạng đăng ký | Bouquet: một tập kênh, phim hay series có tên mà một gói cấp quyền | Bouquets, từ Streams và Movies / Series |
| Quyền truy cập của người ủng hộ | Line: một quyền truy cập với gói, bouquet, hạn, giới hạn kết nối và đầu ra | Lines → thêm, hoặc mã kích hoạt, hoặc Reseller API |
| Chu kỳ thanh toán | Ngày hết hạn của line, gia hạn bằng gói, credit hay API | Ngày hết hạn của line và thời lượng của gói |
| Tài khoản affiliate hoặc nhà phân phối | Tài khoản đối tác (reseller): dashboard uỷ quyền có credit, quyền hạn và line riêng | Users → thêm reseller; Groups cho quyền hạn |
| Tích hợp cửa hàng hoặc thành viên | Reseller API và webhook: các thao tác của panel từ hệ thống của bạn | Reseller API key và webhook trong dashboard của reseller |
Điều kiện tiên quyết
Những thứ cần có trước khi cài đặt.
- Một máy chủ (Ubuntu 22.04 hoặc 24.04) có địa chỉ công khai hoặc tên miền, và đủ băng thông upstream cho lượng khán giả bạn dự kiến.
- Các tập đã hoàn thiện, playout hoặc bộ mã hoá của studio cho kênh, và một cửa hàng trên nền tảng có connector, hoặc khả năng gọi một API HTTP.
- Quyết định về các hạng và về affiliate: mỗi gói đăng ký cấp gì, và ai được bán nó.
Triển khai hạ tầng
Trước hết một máy chủ, thêm node khi khán giả tăng.
- Chạy bộ cài trên máy chủ quản lý và đặt panel sau reverse proxy có TLS; đặt trusted proxies để quy tắc IP thấy địa chỉ thật của người xem.
- Đặt URL gốc phát thành địa chỉ công khai mà khán giả của bạn truy cập.
- Đăng ký một node từ Servers ở khu vực có nhiều người ủng hộ xem; panel cài nó qua SSH và định tuyến người xem của khu vực đó tới node.
- Tạo tài khoản đối tác (reseller) cho mỗi nhân viên phụ trách danh mục hoặc người ủng hộ, với nhóm quyền riêng.
Tổ chức nội dung
Chương trình là series, hạng là bouquet.
- Tạo danh mục theo thể loại, và một series cho mỗi chương trình với một mùa cho mỗi đợt phát hành và một tập cho mỗi video.
- Tạo một bouquet cho kênh trực tiếp, một cho nội dung miễn phí hoặc cấp vào cửa, và một cho mỗi hạng cao hơn.
- Tạo một gói cho mỗi hạng với chu kỳ thanh toán làm thời hạn, một gói dùng thử cho khách mới nếu bạn muốn, và giá bằng credit cho affiliate.
- Giữ kho nội dung cũ trong một danh mục riêng để có thể chuyển giữa các hạng mà không đụng đến series.
Cấu hình đối tác (reseller)
Affiliate và nhà phân phối.
- Tạo một nhóm cho affiliate chỉ có quyền về line, để họ không thể thay đổi danh mục.
- Thêm từng affiliate dưới dạng reseller với nhóm đó và số dư credit; giá gói là do studio quyết định.
- Nhà phân phối có các sub-affiliate có thể tạo sub-reseller dưới tài khoản của mình, tối đa năm cấp.
Cấu hình quyền truy cập của người ủng hộ
Một line cho mỗi người ủng hộ.
- Cài connector cho cửa hàng của bạn (chẳng hạn WooCommerce) và nhập khoá Reseller API cùng gói tương ứng với từng sản phẩm.
- Khi đăng ký, connector gọi create_line với gói và một request id; chu kỳ thanh toán là thời hạn của gói.
- Đặt số kết nối tối đa bằng số thiết bị một người ủng hộ được dùng, thường là hai hoặc ba.
- Với đợt tặng thưởng hoặc ra mắt, tạo mã kích hoạt hàng loạt hoặc thêm line từ Lines → add với gói dùng thử.
Thư viện chương trình
Các tập theo yêu cầu.
- Tải từng tập lên làm một nguồn, hoặc nạp bằng tác vụ VOD ingest; điền tiêu đề, mùa, số tập và siêu dữ liệu TMDB nếu chương trình có.
- Gắn mỗi series vào các bouquet của những hạng được xem nó.
- Kiểm tra phát bằng một line thử của từng hạng trước khi thông báo một đợt phát hành.
Kênh của studio
Một kênh chạy suốt ngày đêm.
- Thêm một luồng trực tiếp cho playout của studio (RTMP push) và đặt nó vào các bouquet của mọi hạng có kênh này.
- Nạp lịch của kênh dưới dạng XMLTV để người ủng hộ thấy đang chiếu gì, và bật catch-up cho những chương trình đáng xem lại.
- Giữ playout chạy giữa các lần phát hành bằng nội dung lên lịch của chính studio; panel chỉ chuyển tiếp luồng.
Hết hạn thuê bao
Quyền truy cập đi theo thanh toán.
- Một line hết hạn vào cuối thời hạn của gói; cửa hàng gia hạn nó bằng renew_line khi khoản thanh toán tiếp theo đến.
- Đăng ký cửa hàng vào các webhook để gửi nhắc nhở khi có line.expiring và hạ cấp người ủng hộ khi có line.expired.
- Người ủng hộ huỷ sẽ bị cửa hàng vô hiệu hoá bằng disable_line, và line có thể được gia hạn lại sau mà không cần tài khoản mới.
Tích hợp với cửa hàng
Cửa hàng bán; player phát.
- Connector tạo, gia hạn và vô hiệu hoá line theo đơn hàng; cửa hàng khác dùng Reseller API và webhook.
- Affiliate thấy line của mình trong dashboard của họ, và Reseller API cho phép họ tự động hoá việc đó.
- Không có đăng nhập một lần cho người xem: người ủng hộ đăng nhập vào player bằng thông tin của line, do cửa hàng gửi cho họ.
Lưu ý về bảo mật
Bảo vệ gói đăng ký, không chỉ máy chủ.
- Phục vụ panel và URL gốc phát qua TLS và đặt TRUSTED_PROXIES thành reverse proxy của bạn.
- Đăng nhập hai lớp cho mọi tài khoản panel, và nhóm quyền để affiliate không thể thay đổi danh mục.
- Liên kết phát được ký và có hạn cùng giới hạn kết nối trên mỗi line; gắn line với một quốc gia nếu license theo lãnh thổ.
- Sao lưu cơ sở dữ liệu mã hoá kèm bản sao ngoài site, và nhật ký kiểm toán cho mọi thay đổi của line và danh mục.
Xử lý sự cố
Những kiểm tra đầu tiên thường gặp.
- Người ủng hộ mới không xem được sau khi trả tiền: kiểm tra lệnh gọi của connector cửa hàng trong log Reseller API và ngày hết hạn của line.
- Người ủng hộ thấy nội dung của hạng cao hơn: kiểm tra gói của line và các bouquet nó cấp.
- Kênh dừng ở cuối một chu kỳ playout: kiểm tra luồng đẩy của bộ mã hoá vào luồng trực tiếp và trạng thái probe của luồng.
- Doanh số của một affiliate không hiện: kiểm tra credit của họ và gói họ dùng có thuộc nhóm của họ không.