[SHARE] HLS Stream M3U8

BlurBase

Junior
Joined
Aug 3, 2025
Messages
87
Reactions
28
MR
3.827
Chat with me via Yahoo Messenger X.com
Như tiêu đề lên không dài thì mình share source code cho ae tự dùng, code này cũng hỗ trợ cho ae Upload lên google driver, R2 hoặc upload trực tiếp trên server.
Để tránh tình trạng Cloudflare block acc do .ts lên mình đã tùy biến thay đổi mọi thứ cho ae bypass cloudflare cho ae chơi.
Ae tự clone về .env.example về thành .env nhé trong đó có sẵn file Dockerfile rồi chỉ việc deploy thành container muốn bê đi đâu cũng dễ, cái này chỉ là backend ae muốn hoàn chỉnh thì tự viết thêm frontend nhé. Muốn biết API cứ vào phần routes/web.php.
Còn ae muốn test trên môi trường dev thì nhớ chạy composer install . Còn không đẩy thẳng lên docker cho nhàn nhé, nhớ phải thêm nginx vào.

Loại code: Lumen framework (PHP)


# Mình sẽ để 0.333 MR ae tự dùng mà đổi để download chắc tính ra được mấy ngàn vnđ thôi, kêu nữa thì chịu =)).

conf nginx

Code:
server {
    listen 80;
    server_name localhost;
    root /var/www/html/public;
    index index.php index.html;

    client_max_body_size 500M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Serve HLS files
    location /hls/ {
        alias /var/www/html/storage/app/public/hls/;
      
        # CORS headers for HLS streaming
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, OPTIONS';
        add_header Access-Control-Allow-Headers 'Range, Content-Type';
      
        # Cache HLS segments
        expires 1h;
        add_header Cache-Control "public, immutable";
      
        # Handle m3u8 playlist files
        location ~ \.m3u8$ {
            add_header Content-Type application/vnd.apple.mpegurl;
            expires -1;
        }
      
        # Handle ts segment files
        location ~ \.ts$ {
            add_header Content-Type video/mp2t;
        }
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_read_timeout 600;
    }

    location ~ /\.ht {
        deny all;
    }
}



Lưu ý: Bản PHP hoàn toàn free, ae có thể tự động tải về nhưng chỉ là backend không bao gồm frontend (sẽ giới hạn tính các năng không giống Node.js)

# DƯỚI ĐÂY LÀ TÍNH NĂNG BẢN NODE.JS (CÓ PHÍ)
- source upload video HLS lên Reddit hoặc TikTok thì đây là bản hoàn chỉnh, viết bằng Node.js, React.js hoạt động trên Vite, chạy ổn định, có thể scale nhiều VPS để xử lý số lượng video lớn cùng lúc.

Cấu trúc source rõ ràng:
  1. API-Service
    • Lo nhận lệnh, chia việc, gọi API upload, quản lý video,storage,tiktok...
    • Giống ông điều phối, quản lý job và tránh quá tải khi nhiều video cùng chạy.
  2. Worker-Service
    1. Thằng này là chuyên gia làm việc nặng, nhận job từ API rồi xử lý video từ FTP, Google Drive, Cloudflare R2...
    2. Có thể thêm nhiều server để chia tải, xử lý nhanh hơn.
    3. Làm xong thì tự upload HLS lên nơi chỉ định (FTP, Google Drive, R2, TikTok, v.v...).
    4. Có tùy chọn giữ hoặc xóa file .mp4 gốc sau khi xử lý xong.
  3. Embed-Service
    1. Đây là nơi hiển thị và quản lý video HLS sau khi xử lý xong
    2. Tự động nhận biết video đã mã hóa hay chưa, nếu có mã hóa thì tự giải mã khi phát
    3. Dành cho ai sợ dính TOS hoặc cần ẩn nội dung 18+ mà vẫn muốn xem trực tiếp qua embed riêng
  4. 3 chế độ bảo mật video
    1. Giữ nguyên file .TS / .CHUNK - không động chạm gì, dễ quản lý.
    2. Chuyển .TS, .CHUNK sang .PNG - kiểu ngụy trang, upload TikTok,Reddit,... an toàn, web nào cũng ổn (miễn không bị nén)
    3. Mã hóa toàn bộ HLS - lưu trữ an toàn, tránh bị quét nội dung hoặc dính TOS VPS
Tính năng hay ho khác
Có mã hóa sign riêng của TikTok, chỉ cần thêm cookie tài khoản, không cần thao tác thêm.
Hệ thống embed riêng hỗ trợ giải mã + cache tự động 1 năm, giúp tối ưu băng thông và tăng tốc load video.

Dành cho anh em muốn làm hệ thống upload / stream HLS chuyên nghiệp mà đỡ phải tự code lại từ đầu.

1763025480192.png

1763025494230.png

 
Last edited:

grey123

Newbie
Joined
Dec 1, 2022
Messages
3
Reactions
1
MR
0.106
Ai có nhu cầu tải video nguồn HLS lên Reddit hoặc TikTok thì đây là bản chỉnh sửa hoàn chỉnh, chạy bằng Node.js, có thể chia tỷ lệ nhiều VPS để xử lý số lượng lớn video cùng lúc.
Có dấu hiệu mã hóa TikTok riêng, tải lên không cần làm gì thêm - chỉ cần thêm tài khoản cookie là có thể sử dụng ngay.

Cấu trúc sourcespecific rõ ràng:
API-Service: chỉ để gọi API, upload video cho Worker làm việc, cũng như quản lý file, tránh bị quá tải.
Worker-Service: nhận công việc từ API-Service, xử lý video từ FTP, Google Drive, Cloudflare R2...
  1. Có thể mở rộng quy mô nhiều máy chủ để xử lý công việc nhanh hơn.
  2. Sau khi xử lý xong sẽ tự động tải HLS lên nơi chỉ định (FTP, Google Drive, R2, TikTok...).
  3. Có thể chọn giữ hoặc xóa tệp .mp4 gốc sau khi xử lý.

3 video bảo mật chế độ:
  1. Giữ nguyên file .TS, .CHUNK.
  2. Chuyển .TS, .CHUNK thành .PNG để tải lên TikTok, PNG an toàn ở bất kỳ trang web nào nếu không bị nén.
  3. Mã hoá toàn bộ file HLS giúp lưu trữ an toàn, tránh vi phạm TOS ở VPS.
Riêng hệ thống nhúng, có sẵn giải mã (nếu trong trường hợp HLS video tránh TOS được mã hóa hợp lý) và bộ nhớ đệm tự động 1 năm -> tối ưu băng thông tối đa

View attachment 296699
Tiktok thì có upload nhiều được không vì mình thấy upload được 1 vài bộ là nó không cho upload nữa
 

levanbaotrong

Newbie
Joined
Oct 14, 2019
Messages
8
Reactions
5
MR
0.080
Update đã fix các lỗi lặt vặt, mời các ae xơi. Ae tải bản cũ thì cứ vào link mà tải bản mới mà dùng thế nhé. Rảnh thì mình update tiếp sau. Ae nào biết code thì khuyên lên viết thêm Node.js để làm Kafka bắn cho worker làm việc thay vì chạy trên 1 con server. Thì tốc độ xử lý bất đồng bộ nhanh hơn.

View attachment 296593
ô này não to đấy :))
 

Announcements

Forum statistics

Threads
434,577
Messages
7,324,298
Members
186,034
Latest member
161betuscom

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom