MoonTV(Branch)
ๅ้กน็ฎๅฐๅhttps://github.com/MoonTechLab/LunaTV
๐ฌ MoonTV ๆฏไธไธชๅผ็ฎฑๅณ็จ็ใ่ทจๅนณๅฐ็ๅฝฑ่ง่ๅๆญๆพๅจใๅฎๅบไบ Next.js 14 + Tailwind CSS + TypeScript ๆๅปบ๏ผๆฏๆๅค่ตๆบๆ็ดขใๅจ็บฟๆญๆพใๆถ่ๅๆญฅใๆญๆพ่ฎฐๅฝใๆฌๅฐ/ไบ็ซฏๅญๅจ๏ผ่ฎฉไฝ ๅฏไปฅ้ๆถ้ๅฐ็ ไบซๆตท้ๅ ่ดนๅฝฑ่งๅ ๅฎนใ
โจ ๅ่ฝ็นๆง
- ๐ ๅคๆบ่ๅๆ็ดข๏ผๅฟซ้่ฟๅ็ปๆใ
- ๐ ไธฐๅฏ่ฏฆๆ ้กต๏ผๆฏๆๅง้ๅ่กจใๆผๅใๅนดไปฝใ็ฎไป็ญๅฎๆดไฟกๆฏๅฑ็คบใ
- โถ๏ธ ๆต็ ๅจ็บฟๆญๆพ๏ผ้ๆ HLS.js & ArtPlayerใ
- ๐ฅ ่ง้ขไธ่ฝฝ๏ผๆฏๆ M3U8 ่ง้ขไธ่ฝฝ๏ผๅค็บฟ็จๅนถๅๅ ้๏ผ่พนไธ่พนๅญๅ่ฝ๏ผChrome/Edge๏ผใ
- โค๏ธ ๆถ่ + ็ปง็ปญ่ง็๏ผๆฏๆ Redis/Upstash ๅญๅจ๏ผๅค็ซฏๅๆญฅ่ฟๅบฆใ
- ๐บ ๅง้่ฟฝๆด๏ผไธ้ฎ่ฟฝๆดๆญฃๅจๆดๆฐ็ๅง้๏ผ่ฟฝๆดๅ่กจๅฑ็คบๆป้ๆฐไธๆช็้ๆฐ๏ผๆฏๆๆตๅผๆน้ๅทๆฐ้ๆฐๅนถๅฑ็คบใไปๆฅๆฐๆดใใ
- ๐ฑ PWA๏ผ็ฆป็บฟ็ผๅญใๅฎ่ฃ ๅฐๆก้ข/ไธปๅฑ๏ผ็งปๅจ็ซฏๅ็ไฝ้ชใ
- ๐ ๅๅบๅผๅธๅฑ๏ผๆก้ขไพง่พนๆ + ็งปๅจๅบ้จๅฏผ่ช๏ผ่ช้ๅบๅ็งๅฑๅนๅฐบๅฏธใ
- ๐ ๆ็ฎ้จ็ฝฒ๏ผไธๆก Docker ๅฝไปคๅณๅฏๅฐๅฎๆดๆๅก่ท่ตทๆฅ๏ผๆๅ ่ดน้จ็ฝฒๅฐ VercelใNetlifyใcloudflareใ
- ๐ฟ ๆบ่ฝๅปๅนฟๅ๏ผ่ชๅจ่ทณ่ฟ่ง้ขไธญ็ๅ็ๅนฟๅ๏ผๅฎ้ชๆง๏ผ
- ๐ฌ ๅผนๅนๆฏๆ๏ผไปฅdanmu_apiไธบๅ็ซฏ, ้่ช่ก้จ็ฝฒ
- ๐ ๆฐ็ชๆฅๅ๏ผๅบไบ Bangumi API ็ๆฏๅจๆฐ็ชๆพ้ๆถ้ด่กจ๏ผๆ ๆณๅ ่ฝฝๅฏ่ช่ก้ ็ฝฎไปฃ็bangumi-proxy
ๆณจๆ๏ผ้จ็ฝฒๅ้กน็ฎไธบ็ฉบๅฃณ้กน็ฎ๏ผๆ ๅ ็ฝฎๆญๆพๆบ๏ผ้่ฆ่ช่กๆถ้๏ผ้่ฆๅผนๅน่ฏท่ช่ก้จ็ฝฒๅ็ซฏ
็นๅปๆฅ็้กน็ฎๆชๅพ
๐บ ็ฎๅฝ
- โจ ๅ่ฝ็นๆง - ๆณจๆ๏ผ้จ็ฝฒๅ้กน็ฎไธบ็ฉบๅฃณ้กน็ฎ๏ผๆ ๅ ็ฝฎๆญๆพๆบ๏ผ้่ฆ่ช่กๆถ้๏ผ้่ฆๅผนๅน่ฏท่ช่ก้จ็ฝฒๅ็ซฏ - ๐บ ็ฎๅฝ - ๆๆฏๆ - ้จ็ฝฒ - Vercel ้จ็ฝฒ - ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ - Upstash Redis ๆฏๆ - Netlify ้จ็ฝฒ - ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ - Upstash Redis ๆฏๆ - Cloudflare ้จ็ฝฒ - ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ - D1 ๆฏๆ - Docker ้จ็ฝฒ - ็ดๆฅ่ฟ่ก๏ผๆ็ฎๅ๏ผlocalstorage๏ผ - Docker Compose - local storage ๅญๅจ - Kvrocks ๅญๅจ๏ผๆจ่๏ผ - Redis ๅญๅจ๏ผๆไธๅฎ็ไธขๆฐๆฎ้ฃ้ฉ๏ผ - Upstash ๅญๅจ - ็ฏๅขๅ้ - ้ ็ฝฎ่ฏดๆ - ็ฎก็ๅ้ ็ฝฎ - AndroidTV ไฝฟ็จ - TVBox ๅฏนๆฅ - ๆฌๅฐๅญๅจ(localstorage)ๆจกๅผ - Selene ไฝฟ็จ - ๅฎๅ จไธ้็งๆ้ - ่ฏท่ฎพ็ฝฎๅฏ็ ไฟๆคๅนถๅ ณ้ญๅ ฌ็ฝๆณจๅ - ้จ็ฝฒ่ฆๆฑ - ้่ฆๅฃฐๆ - License - ่ด่ฐข - โญ Star ่ถๅฟๆๆฏๆ
| ๅ็ฑป | ไธป่ฆไพ่ต | | --------- | ----------------------------------------------------------------------------------------------------- | | ๅ็ซฏๆกๆถ | Next.js 14 ยท App Router | | UI & ๆ ทๅผ | Tailwind CSS 3 | | ่ฏญ่จ | TypeScript 4 | | ๆญๆพๅจ | ArtPlayer ยท HLS.js | | ไปฃ็ ่ดจ้ | ESLint ยท Prettier ยท Jest | | ้จ็ฝฒ | Docker ยท Vercel ยท pages |
้จ็ฝฒ
ๆฌ้กน็ฎๆฏๆ VercelใDockerใNetlifyใCloudflare ้จ็ฝฒใ
ๅญๅจๆฏๆ็ฉ้ต
| | Docker | Vercel | Netlify | Cloudflare | | :-----------: | :----: | :----: | :-----: | :--------: | | localstorage | โ | โ | โ | โ | | ๅ็ redis | โ | | | | | Cloudflare D1 | | | | โ | | Upstash Redis | โ๏ธ | โ | โ | โ |
โ ๏ผ็ปๆต่ฏๆฏๆ
โ๏ธ๏ผ็่ฎบไธๆฏๆ๏ผๆชๆต่ฏ
Vercel ้จ็ฝฒ
ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ
- Fork ๆฌไปๅบๅฐไฝ ็ GitHub ่ดฆๆทใ
- ็ป้ Vercel๏ผ็นๅป Add New โ Project๏ผ้ๆฉ Fork ๅ็ไปๅบใ
- ่ฎพ็ฝฎ PASSWORD ็ฏๅขๅ้ใ
- ไฟๆ้ป่ฎค่ฎพ็ฝฎๅฎๆ้ฆๆฌก้จ็ฝฒใ
- ๅฆ้่ชๅฎไน
config.json๏ผ่ฏท็ดๆฅไฟฎๆน Fork ๅไปๅบไธญ่ฏฅๆไปถใ - ๆฏๆฌก Push ๅฐ
mainๅๆฏๅฐ่ชๅจ่งฆๅ้ๆฐๆๅปบใ
Upstash Redis ๆฏๆ
- ๅฎๆๆฎ้้จ็ฝฒๅนถๆๅ่ฎฟ้ฎใ
- ๅจ upstash ๆณจๅ่ดฆๅทๅนถๆฐๅปบไธไธช Redis ๅฎไพ๏ผๅ็งฐไปปๆใ
- ๅคๅถๆฐๆฐๆฎๅบ็ HTTPS ENDPOINT ๅ TOKEN
- ่ฟๅไฝ ็ Vercel ้กน็ฎ๏ผๆฐๅข็ฏๅขๅ้ UPSTASH_URL ๅ UPSTASH_TOKEN๏ผๅผไธบ็ฌฌไบๆญฅๅคๅถ็ endpoint ๅ token
- ่ฎพ็ฝฎ็ฏๅขๅ้ NEXT_PUBLIC_STORAGE_TYPE๏ผๅผไธบ upstash๏ผ่ฎพ็ฝฎ USERNAME ๅ PASSWORD ไฝไธบ็ซ้ฟ่ดฆๅท
- ้่ฏ้จ็ฝฒ
Netlify ้จ็ฝฒ
ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ
- Fork ๆฌไปๅบๅฐไฝ ็ GitHub ่ดฆๆทใ
- ็ป้ Netlify๏ผ็นๅป Add New project โ Importing an existing project๏ผๆๆ Github๏ผ้ๆฉ Fork ๅ็ไปๅบใ
- ่ฎพ็ฝฎ PASSWORD ็ฏๅขๅ้ใ
- ไฟๆ้ป่ฎค่ฎพ็ฝฎๅฎๆ้ฆๆฌก้จ็ฝฒใ
- ๆฏๆฌก Push ๅฐ
mainๅๆฏๅฐ่ชๅจ่งฆๅ้ๆฐๆๅปบใ
Upstash Redis ๆฏๆ
- ๅฎๆๆฎ้้จ็ฝฒๅนถๆๅ่ฎฟ้ฎใ
- ๅจ upstash ๆณจๅ่ดฆๅทๅนถๆฐๅปบไธไธช Redis ๅฎไพ๏ผๅ็งฐไปปๆใ
- ๅคๅถๆฐๆฐๆฎๅบ็ HTTPS ENDPOINT ๅ TOKEN
- ่ฟๅไฝ ็ Netlify ้กน็ฎ๏ผProject Configuration โ Environment variables ๆฐๅข็ฏๅขๅ้ UPSTASH_URL ๅ UPSTASH_TOKEN๏ผๅผไธบ็ฌฌไบๆญฅๅคๅถ็ endpoint ๅ token
- ่ฎพ็ฝฎ็ฏๅขๅ้ NEXT_PUBLIC_STORAGE_TYPE๏ผๅผไธบ upstash๏ผ่ฎพ็ฝฎ USERNAME ๅ PASSWORD ไฝไธบ็ซ้ฟ่ดฆๅท
- ้่ฏ้จ็ฝฒ
Cloudflare ้จ็ฝฒ
Cloudflare Pages ็็ฏๅขๅ้ๅฐฝ้่ฎพ็ฝฎไธบๅฏ้ฅ่้ๆๆฌ
ๆฎ้้จ็ฝฒ๏ผlocalstorage๏ผ
- Fork ๆฌไปๅบๅฐไฝ ็ GitHub ่ดฆๆทใ
- ็ป้ Cloudflare๏ผ็นๅป ่ฎก็ฎ๏ผWorkers๏ผ-> Workers ๅ Pages๏ผ็นๅปๅๅปบ
- ้ๆฉ Pages๏ผๅฏผๅ ฅ็ฐๆ็ Git ๅญๅจๅบ๏ผ้ๆฉ Fork ๅ็ไปๅบ
- ๆๅปบๅฝไปคๅกซๅ pnpm run pages:build๏ผ้ข่ฎพๆกๆถไธบๆ ๏ผๆๅปบ่พๅบ็ฎๅฝไธบ
.vercel/output/static - ไฟๆ้ป่ฎค่ฎพ็ฝฎๅฎๆ้ฆๆฌก้จ็ฝฒใ่ฟๅ
ฅ่ฎพ็ฝฎ๏ผๅฐๅ
ผๅฎนๆงๆ ๅฟ่ฎพ็ฝฎไธบ
nodejs_compat๏ผๆ ้้ๆฉ๏ผ็ดๆฅ็ฒ่ดด - ้ฆๆฌก้จ็ฝฒๅฎๆๅ่ฟๅ ฅ่ฎพ็ฝฎ๏ผๆฐๅข PASSWORD ๅฏ้ฅ๏ผๅ้ๅๆบๅฏไธ๏ผ๏ผ่ๅ้่ฏ้จ็ฝฒใ
- ๅฆ้่ชๅฎไน
config.json๏ผ่ฏท็ดๆฅไฟฎๆน Fork ๅไปๅบไธญ่ฏฅๆไปถใ - ๆฏๆฌก Push ๅฐ
mainๅๆฏๅฐ่ชๅจ่งฆๅ้ๆฐๆๅปบใ
D1 ๆฏๆ
- ๅฎๆๆฎ้้จ็ฝฒๅนถๆๅ่ฎฟ้ฎ
- ็นๅป ๅญๅจๅๆฐๆฎๅบ -> D1 SQL ๆฐๆฎๅบ๏ผๅๅปบไธไธชๆฐ็ๆฐๆฎๅบ๏ผๅ็งฐ้ๆ
- ่ฟๅ ฅๅๅๅปบ็ๆฐๆฎๅบ๏ผ็นๅปๅทฆไธ่ง็ Explore Data๏ผๅฐd1-init ไธญ็ๅ ๅฎน็ฒ่ดดๅฐ Query ็ชๅฃๅ็นๅป Run All๏ผ็ญๅพ ่ฟ่กๅฎๆ
- ่ฟๅไฝ ็ pages ้กน็ฎ๏ผ่ฟๅ ฅ ่ฎพ็ฝฎ -> ็ปๅฎ๏ผๆทปๅ ็ปๅฎ D1 ๆฐๆฎๅบ๏ผ้ๆฉไฝ ๅๅๅปบ็ๆฐๆฎๅบ๏ผๅ้ๅ็งฐๅกซ DB
- ่ฎพ็ฝฎ็ฏๅขๅ้ NEXT_PUBLIC_STORAGE_TYPE๏ผๅผไธบ d1๏ผ่ฎพ็ฝฎ USERNAME ๅ PASSWORD ไฝไธบ็ซ้ฟ่ดฆๅท
- ้่ฏ้จ็ฝฒ
Docker ้จ็ฝฒ
็ดๆฅ่ฟ่ก๏ผๆ็ฎๅ๏ผlocalstorage๏ผ
# ๆๅ้ขๆๅปบ้ๅ
ๆๆๅๆๆฐ็ๆฌ
docker pull ghcr.io/stardm0/moontv:latest
่ฟ่กๅฎนๅจ
-d: ๅๅฐ่ฟ่ก -p: ๆ ๅฐ็ซฏๅฃ 3000 -> 3000
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/stardm0/moontv:latest
Docker Compose
##### local storage ๅญๅจ
services:
startv-core:
image: ghcr.io/stardm0/moontv:latest
container_name: startv-core
restart: on-failure
ports:
- '3000:3000'
environment:
- PASSWORD=password
##### Kvrocks ๅญๅจ๏ผๆจ่๏ผ
services:
moontv-core:
image: ghcr.io/stardm0/moontv:latest
container_name: moontv-core
restart: on-failure
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=kvrocks
- KVROCKS_URL=redis://moontv-kvrocks:6666
networks:
- moontv-network
depends_on:
- moontv-kvrocks
moontv-kvrocks:
image: apache/kvrocks
container_name: moontv-kvrocks
restart: unless-stopped
volumes:
- kvrocks-data:/var/lib/kvrocks
networks:
- moontv-network
networks:
moontv-network:
driver: bridge
volumes:
kvrocks-data:
##### Redis ๅญๅจ๏ผๆไธๅฎ็ไธขๆฐๆฎ้ฃ้ฉ๏ผ
services:
moontv-core:
image: ghcr.io/stardm0/moontv:latest
container_name: moontv-core
restart: on-failure
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379
networks:
- moontv-network
depends_on:
- moontv-redis
moontv-redis:
image: redis:alpine
container_name: moontv-redis
restart: unless-stopped
networks:
- moontv-network
# ่ฏทๅผๅฏๆไน
ๅ๏ผๅฆๅๅ็บง/้ๅฏๅๆฐๆฎไธขๅคฑ
volumes:
- ./data:/data
networks:
moontv-network:
driver: bridge
##### Upstash ๅญๅจ
services:
startv-core:
image: ghcr.io/stardm0/moontv:latest
container_name: startv-core
restart: on-failure
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=upstash
- UPSTASH_URL= https ๅผๅคด็ HTTPS ENDPOINT
- UPSTASH_TOKEN= TOKEN
็ฏๅขๅ้
| ๅ้ | ่ฏดๆ | ๅฏ้ๅผ | ้ป่ฎคๅผ | | ----------------------------------- | -------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | USERNAME | ้ localstorage ้จ็ฝฒๆถ็็ฎก็ๅ่ดฆๅท | ไปปๆๅญ็ฌฆไธฒ | ๏ผ็ฉบ๏ผ | | PASSWORD | ้ localstorage ้จ็ฝฒๆถไธบ็ฎก็ๅๅฏ็ | ไปปๆๅญ็ฌฆไธฒ | ๏ผ็ฉบ๏ผ | | NEXT_PUBLIC_SITE_NAME | ็ซ็นๅ็งฐ | ไปปๆๅญ็ฌฆไธฒ | MoonTV | | ANNOUNCEMENT | ็ซ็นๅ ฌๅ | ไปปๆๅญ็ฌฆไธฒ | ๆฌ็ฝ็ซไป ๆไพๅฝฑ่งไฟกๆฏๆ็ดขๆๅก๏ผๆๆๅ ๅฎนๅๆฅ่ช็ฌฌไธๆน็ฝ็ซใๆฌ็ซไธๅญๅจไปปไฝ่ง้ข่ตๆบ๏ผไธๅฏนไปปไฝๅ ๅฎน็ๅ็กฎๆงใๅๆณๆงใๅฎๆดๆง่ด่ดฃใ | | NEXT_PUBLIC_STORAGE_TYPE | ๆญๆพ่ฎฐๅฝ/ๆถ่็ๅญๅจๆนๅผ | localstorageใredisใd1ใupstash | localstorage | | REDIS_URL | redis ่ฟๆฅ url | ่ฟๆฅ url | ็ฉบ | | UPSTASH_URL | upstash redis ่ฟๆฅ url | ่ฟๆฅ url | ็ฉบ | | UPSTASH_TOKEN | upstash redis ่ฟๆฅ token | ่ฟๆฅ token | ็ฉบ | | NEXT_PUBLIC_ENABLE_REGISTER | ๆฏๅฆๅผๆพๆณจๅ๏ผไป ๅจ้ localstorage ้จ็ฝฒๆถ็ๆ | true / false | false | | NEXT_PUBLIC_SEARCH_MAX_PAGE | ๆ็ดขๆฅๅฃๅฏๆๅ็ๆๅคง้กตๆฐ | 1-50 | 5 | | NEXT_PUBLIC_DOUBAN_PROXY_TYPE | ่ฑ็ฃๆฐๆฎๆบ่ฏทๆฑๆนๅผ | ่งไธๆน | direct | | NEXT_PUBLIC_DOUBAN_PROXY | ่ชๅฎไน่ฑ็ฃๆฐๆฎไปฃ็ URL | url prefix | (็ฉบ) | | NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE | ่ฑ็ฃๅพ็ไปฃ็็ฑปๅ | ่งไธๆน | direct | | NEXT_PUBLIC_DOUBAN_IMAGE_PROXY | ่ชๅฎไน่ฑ็ฃๅพ็ไปฃ็ URL | url prefix | (็ฉบ) | | NEXT_PUBLIC_BANGUMI_PROXY | ่ชๅฎไน Bangumi ๆฐๆฎไปฃ็ URL๏ผ็ฑๅ็ซฏไปฃ็่ฏทๆฑ | url prefix | (็ฉบ๏ผ็็ฉบไฝฟ็จๅฎๆน api.bgm.tv) | | NEXT_PUBLIC_BANGUMI_IMAGE_PROXY | ่ชๅฎไน Bangumi ๅพ็ไปฃ็ๅๅ๏ผ็จไบๆฟๆข lain.bgm.tv | url prefix | (็ฉบ๏ผ็็ฉบไธๆฟๆข) | | NEXT_PUBLIC_DISABLE_YELLOW_FILTER | ๅ ณ้ญ่ฒๆ ๅ ๅฎน่ฟๆปค | true/false | false | | NEXT_PUBLIC_DANMU_API_BASE_URL | ๅผนๅนๆฅๅฃๅฐๅ | ๆฅๅฃๅฐๅ | (็ฉบ) | | NEXT_PUBLIC_PLAYBACK_SAVE_INTERVAL | ๆญๆพ่ฟๅบฆ่ชๅจไฟๅญ้ด้๏ผ็ง๏ผ | ๆญฃๆดๆฐ๏ผๅปบ่ฎฎ 5-60๏ผUpstash ๅปบ่ฎฎ โฅ20๏ผ | ๆๅญๅจ็ฑปๅ๏ผUpstash 20 / ๅ ถไฝ 5 |
NEXT_PUBLIC_DOUBAN_PROXY_TYPE ้้กน่งฃ้๏ผ
- direct: ็ฑๆๅกๅจ็ดๆฅ่ฏทๆฑ่ฑ็ฃๆบ็ซ
- cors-proxy-zwei: ๆต่งๅจๅ cors proxy ่ฏทๆฑ่ฑ็ฃๆฐๆฎ๏ผ่ฏฅ cors proxy ็ฑ Zwei ๆญๅปบ
- cmliussss-cdn-tencent: ๆต่งๅจๅ่ฑ็ฃ CDN ่ฏทๆฑๆฐๆฎ๏ผ่ฏฅ CDN ็ฑ CMLiussss ๆญๅปบ๏ผๅนถ็ฑ่ พ่ฎฏไบ cdn ๆไพๅ ้
- cmliussss-cdn-ali: ๆต่งๅจๅ่ฑ็ฃ CDN ่ฏทๆฑๆฐๆฎ๏ผ่ฏฅ CDN ็ฑ CMLiussss ๆญๅปบ๏ผๅนถ็ฑ้ฟ้ไบ cdn ๆไพๅ ้
- custom: ็จๆท่ชๅฎไน proxy๏ผ็ฑ NEXT_PUBLIC_DOUBAN_PROXY ๅฎไน
- direct๏ผ็ฑๆต่งๅจ็ดๆฅ่ฏทๆฑ่ฑ็ฃๅ้ ็้ป่ฎคๅพ็ๅๅ
- server๏ผ็ฑๆๅกๅจไปฃ็่ฏทๆฑ่ฑ็ฃๅ้ ็้ป่ฎคๅพ็ๅๅ
- img3๏ผ็ฑๆต่งๅจ่ฏทๆฑ่ฑ็ฃๅฎๆน็็ฒพๅ cdn๏ผ้ฟ้ไบ๏ผ
- cmliussss-cdn-tencent๏ผ็ฑๆต่งๅจ่ฏทๆฑ่ฑ็ฃ CDN๏ผ่ฏฅ CDN ็ฑ CMLiussss ๆญๅปบ๏ผๅนถ็ฑ่ พ่ฎฏไบ cdn ๆไพๅ ้
- cmliussss-cdn-ali๏ผ็ฑๆต่งๅจ่ฏทๆฑ่ฑ็ฃ CDN๏ผ่ฏฅ CDN ็ฑ CMLiussss ๆญๅปบ๏ผๅนถ็ฑ้ฟ้ไบ cdn ๆไพๅ ้
- custom: ็จๆท่ชๅฎไน proxy๏ผ็ฑ NEXT_PUBLIC_DOUBAN_IMAGE_PROXY ๅฎไน
้ ็ฝฎ่ฏดๆ
ๅฆๆไธบ localstorage ๆจกๅผๆๆๅฏ่ชๅฎไน้กน้ไธญๅจๆ น็ฎๅฝ็ config.json ไธญ(localstorage ๆจกๅผ)
้ localstorage ๅฏๅจ้จ็ฝฒๅฅฝ็็ฝ้กตไธญ็ดๆฅ้
็ฝฎ
{
"cache_time": 7200,
"api_site": {
"dyttzy": {
"api": "http://caiji.dyttzyapi.com/api.php/provide/vod",
"name": "็ตๅฝฑๅคฉๅ ่ตๆบ",
"detail": "http://caiji.dyttzyapi.com"
}
// ...ๆดๅค็ซ็น
},
"custom_category": [
{
"name": "ๅ่ฏญ",
"type": "movie",
"query": "ๅ่ฏญ"
}
]
}
cache_time๏ผๆฅๅฃ็ผๅญๆถ้ด๏ผ็ง๏ผใapi_site๏ผไฝ ๅฏไปฅๅขๅ ๆๆฟๆขไปปไฝ่ตๆบ็ซ๏ผๅญๆฎต่ฏดๆ๏ผ
key๏ผๅฏไธๆ ่ฏ๏ผไฟๆๅฐๅๅญๆฏ/ๆฐๅญใ
- api๏ผ่ตๆบ็ซๆไพ็ vod JSON API ๆ นๅฐๅใ
- name๏ผๅจไบบๆบ็้ขไธญๅฑ็คบ็ๅ็งฐใ
- detail๏ผ๏ผๅฏ้๏ผ้จๅๆ ๆณ้่ฟ API ่ทๅๅง้่ฏฆๆ
็็ซ็น๏ผ้่ฆๆไพ็ฝ้กต่ฏฆๆ
ๆ น URL๏ผ็จไบ็ฌๅใ
custom_category๏ผ่ชๅฎไนๅ็ฑป้ ็ฝฎ๏ผ็จไบๅจๅฏผ่ชไธญๆทปๅ ไธชๆงๅ็ๅฝฑ่งๅ็ฑปใไปฅ type + query ไฝไธบๅฏไธๆ ่ฏใๆฏๆไปฅไธๅญๆฎต๏ผ
name๏ผๅ็ฑปๆพ็คบๅ็งฐ๏ผๅฏ้๏ผๅฆไธๆไพๅไฝฟ็จ query ไฝไธบๆพ็คบๅ๏ผ
- type๏ผๅ็ฑป็ฑปๅ๏ผๆฏๆ movie๏ผ็ตๅฝฑ๏ผๆ tv๏ผ็ต่งๅง๏ผ
- query๏ผๆ็ดขๅ
ณ้ฎ่ฏ๏ผ็จไบๅจ่ฑ็ฃ API ไธญๆ็ดข็ธๅ
ณๅ
ๅฎน
custom_category ๆฏๆ็่ชๅฎไนๅ็ฑปๅทฒ็ฅๅฆไธ๏ผ
- movie๏ผ็ญ้จใๆๆฐใ็ปๅ ธใ่ฑ็ฃ้ซๅใๅท้จไฝณ็ใๅ่ฏญใๆฌง็พใ้ฉๅฝใๆฅๆฌใๅจไฝใๅๅงใ็ฑๆ ใ็งๅนปใๆฌ็ใๆๆใๆฒปๆ
- tv๏ผ็ญ้จใ็พๅงใ่ฑๅงใ้ฉๅงใๆฅๅงใๅฝไบงๅงใๆธฏๅงใๆฅๆฌๅจ็ปใ็ปผ่บใ็บชๅฝ็
MoonTV ๆฏๆๆ ๅ็่นๆ CMS V10 API ๆ ผๅผใ
ไฟฎๆนๅ ๆ ้้ๆฐๆๅปบ๏ผๆๅกไผๅจๅฏๅจๆถ่ฏปๅไธๆฌกใ
็ฎก็ๅ้ ็ฝฎ
่ฏฅ็นๆง็ฎๅไป ๆฏๆ้่ฟ้ localstorage ๅญๅจ็้จ็ฝฒๆนๅผไฝฟ็จ
ๆฏๆๅจ่ฟ่กๆถๅจๆๅๆดๆๅก้ ็ฝฎ
่ฎพ็ฝฎ็ฏๅขๅ้ USERNAME ๅ PASSWORD ๅณไธบ็ซ้ฟ็จๆท๏ผ็ซ้ฟๅฏ่ฎพ็ฝฎ็จๆทไธบ็ฎก็ๅ
็ซ้ฟๆ็ฎก็ๅ่ฎฟ้ฎ /admin ๅณๅฏ่ฟ่ก็ฎก็ๅ้
็ฝฎ
AndroidTV ไฝฟ็จ
็ฎๅ่ฏฅ้กน็ฎๅฏไปฅ้ ๅ OrionTV ๅจ Android TV ไธไฝฟ็จ๏ผๅฏไปฅ็ดๆฅไฝไธบ OrionTV ๅ็ซฏ
TVBox ๅฏนๆฅ
- ๅจ้ฆ้กตๅณไธ่ง็โ่ฎพ็ฝฎโไธญ๏ผๅผๅฏโๅฏ็จ TVBox ๆฅๅฃโใ
- ๅฏ้ๆฉโ้ๆบโ็ๆ่ฎฟ้ฎๅฏ็ ๏ผๆ่ชๅฎไนๅ็นๅปโไฟๅญโใ
- ็ณป็ปไผ็ๆๅฏ็ดๆฅๅคๅถ็ๆฅๅฃๅฐๅ๏ผๅฝขๅผไธบ๏ผ
https://ไฝ ็ๅๅ/api/tvbox/config?pwd=ไฝ ็ๅฃไปคใ - ๅฐ่ฏฅๅฐๅๅกซๅ ฅ TVBox ็่ฎข้ /้ ็ฝฎๆฅๅฃๅณๅฏไฝฟ็จใ
- ๅฆ้ๅ ณ้ญๅฏนๆฅ๏ผๅ ณ้ญๅผๅ ณๅณๅฏใ
ๆฌๅฐๅญๅจ(localstorage)ๆจกๅผ
- ๅผๅ
ณ็ฑ็ฏๅขๅ้ๆงๅถ๏ผ
TVBOX_ENABLED=true|false๏ผ้ป่ฎค true๏ผๆช่ฎพ็ฝฎๅณๅผๅฏ๏ผ - ๆฅๅฃ่ฎฟ้ฎๅฃไปคไฝฟ็จ็ปๅฝๅฏ็ ๏ผ
PASSWORD - ็ๆ็่ฎข้
ๅฐๅ็คบไพ๏ผ
https://ไฝ ็ๅๅ/api/tvbox/config?pwd=$PASSWORD - ่ฎพ็ฝฎ้ขๆฟไธญ็ๅผๅ ณไธไฟๅญๅจๆฌๅฐๆจกๅผไธไป ็จไบๅฑ็คบ๏ผ่ขซ็ฆ็จ๏ผ๏ผ่ฏท้่ฟ็ฏๅขๅ้ๆงๅถใ
Selene ไฝฟ็จ
่ฏฅ้กน็ฎๅทฒๅ ผๅฎน Selene ๅจ็งปๅจ็ซฏไธไฝฟ็จ๏ผๅฏไปฅ็ดๆฅไฝไธบ Selene ๅ็ซฏ(ๆฌๅฐๅญๅจไธๆฏๆ)
ๅฎๅ จไธ้็งๆ้
่ฏท่ฎพ็ฝฎๅฏ็ ไฟๆคๅนถๅ ณ้ญๅ ฌ็ฝๆณจๅ
ไธบไบๆจ็ๅฎๅ จๅ้ฟๅ ๆฝๅจ็ๆณๅพ้ฃ้ฉ๏ผๆไปฌ่ฆๆฑๅจ้จ็ฝฒๆถ่ฎพ็ฝฎๅฏ็ ไฟๆคๅนถๅผบ็ๅปบ่ฎฎๅ ณ้ญๅ ฌ็ฝๆณจๅ๏ผ
- ้ฟๅ ๅ ฌๅผ่ฎฟ้ฎ๏ผไธ่ฎพ็ฝฎๅฏ็ ็ๅฎไพไปปไฝไบบ้ฝๅฏไปฅ่ฎฟ้ฎ๏ผๅฏ่ฝ่ขซๆถๆๅฉ็จ
- ้ฒ่็ๆ้ฃ้ฉ๏ผๅ ฌๅผ็่ง้ขๆ็ดขๆๅกๅฏ่ฝ้ขไธด็ๆๆน็ๆ่ฏไธพๆฅ
- ไฟๆคไธชไบบ้็ง๏ผ่ฎพ็ฝฎๅฏ็ ๅฏไปฅ้ๅถ่ฎฟ้ฎ่ๅด๏ผไฟๆคๆจ็ไฝฟ็จ่ฎฐๅฝ
้จ็ฝฒ่ฆๆฑ
- ่ฎพ็ฝฎ็ฏๅขๅ้
PASSWORD๏ผไธบๆจ็ๅฎไพ่ฎพ็ฝฎไธไธชๅผบๅฏ็ - ไป ไพไธชไบบไฝฟ็จ๏ผ่ฏทๅฟๅฐๆจ็ๅฎไพ้พๆฅๅ ฌๅผๅไบซๆไผ ๆญ
- ้ตๅฎๅฝๅฐๆณๅพ๏ผ่ฏท็กฎไฟๆจ็ไฝฟ็จ่กไธบ็ฌฆๅๅฝๅฐๆณๅพๆณ่ง
้่ฆๅฃฐๆ
- ๆฌ้กน็ฎไป ไพๅญฆไน ๅไธชไบบไฝฟ็จ
- ่ฏทๅฟๅฐ้จ็ฝฒ็ๅฎไพ็จไบๅไธ็จ้ๆๅ ฌๅผๆๅก
- ๅฆๅ ๅ ฌๅผๅไบซๅฏผ่ด็ไปปไฝๆณๅพ้ฎ้ข๏ผ็จๆท้่ช่กๆฟๆ ่ดฃไปป
- ้กน็ฎๅผๅ่ ไธๅฏน็จๆท็ไฝฟ็จ่กไธบๆฟๆ ไปปไฝๆณๅพ่ดฃไปป
License
MIT ยฉ 2025 MoonTV & Contributors
่ด่ฐข
- ts-nextjs-tailwind-starter โ ้กน็ฎๆๅๅบไบ่ฏฅ่ๆๆถใ
- LibreTV โ ็ฑๆญคๅฏๅ๏ผ็ซๅจๅทจไบบ็่ฉ่ไธใ
- ArtPlayer โ ๆไพๅผบๅคง็็ฝ้กต่ง้ขๆญๆพๅจใ
- HLS.js โ ๅฎ็ฐ HLS ๆตๅชไฝๅจๆต่งๅจไธญ็ๆญๆพๆฏๆใ
- Zwei โ ๆไพ่ทๅ่ฑ็ฃๆฐๆฎ็ cors proxy
- CMLiussss โ ๆไพ่ฑ็ฃ CDN ๆๅก
- ๆ่ฐขๆๆๆไพๅ ่ดนๅฝฑ่งๆฅๅฃ็็ซ็นใ