mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
Refactor Stream Hosts
This commit is contained in:
parent
f96505c4da
commit
f3a7fdfa17
79
Build/build-stream-service.js
Normal file
79
Build/build-stream-service.js
Normal file
@ -0,0 +1,79 @@
|
||||
// @ts-check
|
||||
const { task } = require('./lib/trace-runner');
|
||||
|
||||
const path = require('path');
|
||||
const { createRuleset } = require('./lib/create-file');
|
||||
|
||||
const {
|
||||
ALL, NORTH_AMERICA, EU, HK, TW, JP, KR
|
||||
// SOUTH_EAST_ASIA, AU
|
||||
} = require('../Source/stream');
|
||||
|
||||
/**
|
||||
* @param {string} fileId
|
||||
* @param {string} title
|
||||
* @param {import('../Source/stream').StreamService[]} streamServices
|
||||
*/
|
||||
const createRulesetForStreamService = (fileId, title, streamServices) => {
|
||||
return [
|
||||
// Domains
|
||||
...createRuleset(
|
||||
`Sukka's Ruleset - Stream Services: ${title}`,
|
||||
[
|
||||
'License: AGPL 3.0',
|
||||
'Homepage: https://ruleset.skk.moe',
|
||||
'GitHub: https://github.com/SukkaW/Surge',
|
||||
'',
|
||||
...streamServices.map(i => `- ${i.name}`)
|
||||
],
|
||||
new Date(),
|
||||
streamServices.flatMap(i => i.rules),
|
||||
'ruleset',
|
||||
path.resolve(__dirname, `../List/non_ip/${fileId}.conf`),
|
||||
path.resolve(__dirname, `../Clash/non_ip/${fileId}.txt`)
|
||||
),
|
||||
// IP
|
||||
...createRuleset(
|
||||
`Sukka's Ruleset - Stream Services' IPs: ${title}`,
|
||||
[
|
||||
'License: AGPL 3.0',
|
||||
'Homepage: https://ruleset.skk.moe',
|
||||
'GitHub: https://github.com/SukkaW/Surge',
|
||||
'',
|
||||
...streamServices.map(i => `- ${i.name}`)
|
||||
],
|
||||
new Date(),
|
||||
streamServices.flatMap(i => (
|
||||
i.ip
|
||||
? [
|
||||
...i.ip.v4.map(ip => `IP-CIDR,${ip},no-resolve`),
|
||||
...i.ip.v6.map(ip => `IP-CIDR6,${ip},no-resolve`)
|
||||
]
|
||||
: []
|
||||
)),
|
||||
'ruleset',
|
||||
path.resolve(__dirname, `../List/ip/${fileId}.conf`),
|
||||
path.resolve(__dirname, `../Clash/ip/${fileId}.txt`)
|
||||
)
|
||||
];
|
||||
};
|
||||
|
||||
const buildStreamService = task(__filename, async () => {
|
||||
return Promise.all([
|
||||
...createRulesetForStreamService('stream', 'All', ALL),
|
||||
...createRulesetForStreamService('stream_us', 'North America', NORTH_AMERICA),
|
||||
...createRulesetForStreamService('stream_eu', 'Europe', EU),
|
||||
...createRulesetForStreamService('stream_hk', 'Hong Kong', HK),
|
||||
...createRulesetForStreamService('stream_tw', 'Taiwan', TW),
|
||||
...createRulesetForStreamService('stream_jp', 'Japan', JP),
|
||||
// ...createRulesetForStreamService('stream_au', 'Oceania', AU),
|
||||
...createRulesetForStreamService('stream_kr', 'Korean', KR)
|
||||
// ...createRulesetForStreamService('stream_south_east_asia', 'South East Asia', SOUTH_EAST_ASIA)
|
||||
]);
|
||||
});
|
||||
|
||||
module.exports.buildStreamService = buildStreamService;
|
||||
|
||||
if (require.main === module) {
|
||||
buildStreamService();
|
||||
}
|
||||
@ -13,6 +13,7 @@ const { buildSpeedtestDomainSet } = require('./build-speedtest-domainset');
|
||||
const { buildInternalCDNDomains } = require('./build-internal-cdn-rules');
|
||||
const { buildInternalChnDomains } = require('./build-internal-chn-domains');
|
||||
const { buildDomesticRuleset } = require('./build-domestic-ruleset');
|
||||
const { buildStreamService } = require('./build-stream-service');
|
||||
const { buildRedirectModule } = require('./build-redirect-module');
|
||||
const { validate } = require('./validate-domainset');
|
||||
|
||||
@ -103,8 +104,9 @@ const endWorker = async (worker) => {
|
||||
const buildInternalChnDomainsPromise = buildInternalChnDomains();
|
||||
// build:domestic-ruleset
|
||||
const buildDomesticRulesetPromise = downloadPreviousBuildPromise.then(() => buildDomesticRuleset());
|
||||
// build:redirect-module
|
||||
|
||||
const buildRedirectModulePromise = downloadPreviousBuildPromise.then(() => buildRedirectModule());
|
||||
const buildStreamServicePromise = downloadPreviousBuildPromise.then(() => buildStreamService());
|
||||
|
||||
const stats = await Promise.all([
|
||||
downloadPreviousBuildPromise,
|
||||
@ -122,7 +124,8 @@ const endWorker = async (worker) => {
|
||||
buildInternalReverseChnCIDRPromise,
|
||||
buildInternalChnDomainsPromise,
|
||||
buildDomesticRulesetPromise,
|
||||
buildRedirectModulePromise
|
||||
buildRedirectModulePromise,
|
||||
buildStreamServicePromise
|
||||
]);
|
||||
|
||||
await Promise.all([
|
||||
|
||||
@ -12,6 +12,9 @@ async function compareAndWriteFile(linesA, filePath) {
|
||||
if (!fs.existsSync(filePath)) {
|
||||
console.log(`${filePath} does not exists, writing...`);
|
||||
isEqual = false;
|
||||
} else if (linesA.length === 0) {
|
||||
console.log(`Nothing to write to ${filePath}...`);
|
||||
isEqual = false;
|
||||
} else {
|
||||
let index = 0;
|
||||
|
||||
@ -19,6 +22,12 @@ async function compareAndWriteFile(linesA, filePath) {
|
||||
const lineA = linesA[index];
|
||||
index++;
|
||||
|
||||
if (lineA === undefined) {
|
||||
// The file becomes smaller
|
||||
isEqual = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (lineA[0] === '#' && lineB[0] === '#') {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1039,6 +1039,7 @@ files.slack.com
|
||||
cdn.sstatic.net
|
||||
# PornHub
|
||||
.phncdn.com
|
||||
# phprcdn.com # PornHub Premium CDN
|
||||
# Font.net
|
||||
.fonts.com
|
||||
.fonts.net
|
||||
@ -1674,6 +1675,11 @@ headway-widget.net
|
||||
cdn2.downdetector.com
|
||||
# DailyMotion
|
||||
.dmcdn.net
|
||||
# NowE
|
||||
images.now-tv.com
|
||||
.nowestatic.com
|
||||
# Paramount+
|
||||
.pplusstatic.com
|
||||
# Others
|
||||
.ziffstatic.com
|
||||
.muscache.com
|
||||
|
||||
@ -139,3 +139,5 @@ enterprise.proxmox.com
|
||||
# Linux Mirrors
|
||||
mirror.navercorp.com
|
||||
fedorapeople.org
|
||||
# WhatPulse
|
||||
releases.whatpulse.org
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
# $ meta_title Sukka's Ruleset - Stream Services IPs
|
||||
# $ meta_description This file contains IPs used by popular stream services.
|
||||
|
||||
# >> Netflix
|
||||
IP-CIDR,23.246.18.0/23,no-resolve
|
||||
IP-CIDR,37.77.184.0/21,no-resolve
|
||||
IP-CIDR,45.57.0.0/17,no-resolve
|
||||
IP-CIDR,64.120.128.0/17,no-resolve
|
||||
IP-CIDR,66.197.128.0/17,no-resolve
|
||||
IP-CIDR,69.53.224.0/19,no-resolve
|
||||
IP-CIDR,108.175.32.0/20,no-resolve
|
||||
IP-CIDR,185.2.220.0/22,no-resolve
|
||||
IP-CIDR,185.9.188.0/22,no-resolve
|
||||
IP-CIDR,192.173.64.0/18,no-resolve
|
||||
IP-CIDR,198.38.96.0/19,no-resolve
|
||||
IP-CIDR,198.45.48.0/20,no-resolve
|
||||
IP-CIDR,208.75.76.0/22,no-resolve
|
||||
IP-CIDR6,2607:fb10::/32,no-resolve
|
||||
IP-CIDR6,2620:10c:7000::/44,no-resolve
|
||||
IP-CIDR6,2a00:86c0::/32,no-resolve
|
||||
IP-CIDR6,2a03:5640::/32,no-resolve
|
||||
|
||||
# >> Spotify
|
||||
IP-CIDR,35.186.224.47/32,no-resolve
|
||||
|
||||
# >> WeTV
|
||||
IP-CIDR,150.109.28.51/32,no-resolve
|
||||
@ -1,532 +0,0 @@
|
||||
# $ meta_title Sukka's Ruleset - Stream Services
|
||||
# $ meta_description This file contains rules for popular stream services.
|
||||
|
||||
# >> 4gtv
|
||||
DOMAIN-SUFFIX,4gtv.tv
|
||||
DOMAIN,4gtvfreepcvod-cds.cdn.hinet.net
|
||||
|
||||
# >> AbemaTV
|
||||
DOMAIN-KEYWORD,abematv.akamaized.net
|
||||
DOMAIN-SUFFIX,abema.io
|
||||
DOMAIN-SUFFIX,abema.tv
|
||||
DOMAIN-SUFFIX,ameba.jp
|
||||
DOMAIN-SUFFIX,abema-tv.com
|
||||
DOMAIN-SUFFIX,hayabusa.dev
|
||||
DOMAIN-SUFFIX,hayabusa.io
|
||||
DOMAIN-SUFFIX,hayabusa.media
|
||||
DOMAIN-SUFFIX,amebame.com
|
||||
DOMAIN-SUFFIX,amebaownd.com
|
||||
DOMAIN-SUFFIX,amebaowndme.com
|
||||
DOMAIN-SUFFIX,ameblo.jp
|
||||
DOMAIN-SUFFIX,dokusho-ojikan.jp
|
||||
DOMAIN-SUFFIX,winticket.jp
|
||||
|
||||
USER-AGENT,AbemaTV*
|
||||
|
||||
# >> All4
|
||||
DOMAIN-SUFFIX,c4assets.com
|
||||
DOMAIN-SUFFIX,channel4.com
|
||||
|
||||
USER-AGENT,All4*
|
||||
|
||||
# >> Amazon Prime Video
|
||||
DOMAIN,avodmp4s3ww-a.akamaihd.net
|
||||
DOMAIN,d1v5ir2lpwr8os.cloudfront.net
|
||||
DOMAIN,d22qjgkvxw22r6.cloudfront.net
|
||||
DOMAIN,d25xi40x97liuc.cloudfront.net
|
||||
DOMAIN,dmqdd6hw24ucf.cloudfront.net
|
||||
DOMAIN,d27xxe7juh1us6.cloudfront.net
|
||||
DOMAIN,d184dfn36gombl.cloudfront.net
|
||||
DOMAIN,d1xfray82862hr.cloudfront.net
|
||||
DOMAIN,d3196yreox78o9.cloudfront.net
|
||||
|
||||
DOMAIN-KEYWORD,avoddashs
|
||||
|
||||
DOMAIN-SUFFIX,aiv-cdn.net
|
||||
DOMAIN-SUFFIX,aiv-delivery.net
|
||||
DOMAIN-SUFFIX,amazonvideo.com
|
||||
DOMAIN-SUFFIX,amazonvideo.cc
|
||||
DOMAIN-SUFFIX,media-amazon.com
|
||||
DOMAIN-SUFFIX,primevideo.com
|
||||
DOMAIN-SUFFIX,prime-video.com
|
||||
DOMAIN-SUFFIX,primevideo.cc
|
||||
DOMAIN-SUFFIX,primevideo.info
|
||||
DOMAIN-SUFFIX,primevideo.org
|
||||
DOMAIN-SUFFIX,primevideo.tv
|
||||
DOMAIN-SUFFIX,amazonvideodirect.cc
|
||||
DOMAIN-SUFFIX,amazonprimevideos.com
|
||||
DOMAIN-SUFFIX,atv-ps.amazon.com
|
||||
DOMAIN-SUFFIX,avodmp4s3ww-a.akamaihd.net
|
||||
DOMAIN-SUFFIX,fls-na.amazon.com
|
||||
|
||||
USER-AGENT,InstantVideo.US*
|
||||
USER-AGENT,Prime%20Video*
|
||||
PROCESS-NAME,com.amazon.avod.thirdpartyclient
|
||||
|
||||
# >> Apple TV
|
||||
|
||||
DOMAIN,ocvideo.apple.com
|
||||
DOMAIN,linear.tv.apple.com
|
||||
DOMAIN,play-edge.itunes.apple.com
|
||||
DOMAIN,np-edge.itunes.apple.com
|
||||
DOMAIN,uts-api.itunes.apple.com
|
||||
DOMAIN,hls-amt.itunes.apple.com
|
||||
DOMAIN,hls.itunes.apple.com
|
||||
|
||||
USER-AGENT,AppleTV*
|
||||
USER-AGENT,com.apple.tv*
|
||||
PROCESS-NAME,tv
|
||||
|
||||
# >> Apple Music TV
|
||||
|
||||
DOMAIN-SUFFIX,applemusic.com
|
||||
PROCESS-NAME,music
|
||||
|
||||
# >> Bahamut
|
||||
|
||||
DOMAIN,bahamut.akamaized.net
|
||||
DOMAIN,gamer-cds.cdn.hinet.net
|
||||
DOMAIN,gamer2-cds.cdn.hinet.net
|
||||
|
||||
DOMAIN-SUFFIX,viblast.com
|
||||
|
||||
DOMAIN-SUFFIX,bahamut.com.tw
|
||||
DOMAIN-SUFFIX,gamer.com.tw
|
||||
|
||||
USER-AGENT,Anime*
|
||||
|
||||
# >> BBC
|
||||
|
||||
DOMAIN-KEYWORD,bbcfmt
|
||||
DOMAIN-KEYWORD,uk-live
|
||||
|
||||
DOMAIN-SUFFIX,bbc.co.uk
|
||||
DOMAIN-SUFFIX,bbci.co.uk
|
||||
|
||||
USER-AGENT,BBCiPlayer*
|
||||
|
||||
# >> Bilibili Intl
|
||||
|
||||
DOMAIN-SUFFIX,biliintl.com
|
||||
DOMAIN,apm-misaka.biliapi.net
|
||||
DOMAIN,p.bstarstatic.com
|
||||
DOMAIN,p-bstarstatic.akamaized.net
|
||||
DOMAIN,upos-bstar-mirrorakam.akamaized.net
|
||||
DOMAIN,upos-bstar1-mirrorakam.akamaized.net
|
||||
DOMAIN-SUFFIX,bilibili.tv
|
||||
PROCESS-NAME,com.bstar.intl
|
||||
|
||||
# >> DAZN
|
||||
|
||||
DOMAIN,d151l6v8er5bdm.cloudfront.net
|
||||
DOMAIN,d1sgwhnao7452x.cloudfront.net
|
||||
|
||||
DOMAIN-KEYWORD,voddazn
|
||||
|
||||
DOMAIN-SUFFIX,dazn-api.com
|
||||
DOMAIN-SUFFIX,dazn.com
|
||||
DOMAIN-SUFFIX,dazndn.com
|
||||
DOMAIN-SUFFIX,indazn.com
|
||||
DOMAIN-SUFFIX,indaznlab.com
|
||||
|
||||
DOMAIN-SUFFIX,dca-ll-livedazn-dznlivejp.s.llnwi.net
|
||||
DOMAIN-SUFFIX,dcalivedazn.akamaized.net
|
||||
DOMAIN-SUFFIX,dcblivedazn.akamaized.net
|
||||
|
||||
USER-AGENT,DAZN*
|
||||
|
||||
# >> Deezer
|
||||
DOMAIN-SUFFIX,deezer.com
|
||||
DOMAIN-SUFFIX,dzcdn.net
|
||||
USER-AGENT,Deezer*
|
||||
|
||||
# >> Disney+
|
||||
DOMAIN,cdn.registerdisney.go.com
|
||||
|
||||
DOMAIN-SUFFIX,bamgrid.com
|
||||
DOMAIN-SUFFIX,disney-plus.net
|
||||
DOMAIN-SUFFIX,disneyplus.com
|
||||
DOMAIN-SUFFIX,dssott.com
|
||||
DOMAIN-SUFFIX,disneystreaming.com
|
||||
|
||||
USER-AGENT,Disney+*
|
||||
|
||||
# >> Discovery+
|
||||
|
||||
USER-AGENT,DPlus*
|
||||
USER-AGENT,discovery+*
|
||||
DOMAIN-SUFFIX,disco-api.com
|
||||
DOMAIN-SUFFIX,discoveryplus.co.uk
|
||||
DOMAIN-SUFFIX,discoveryplus.com
|
||||
DOMAIN-SUFFIX,discoveryplus.in
|
||||
DOMAIN-SUFFIX,dnitv.com
|
||||
|
||||
# >> DMM
|
||||
|
||||
DOMAIN-SUFFIX,dmm.co.jp
|
||||
DOMAIN-SUFFIX,dmm.com
|
||||
DOMAIN-SUFFIX,dmm-extension.com
|
||||
|
||||
# >> encoreTVB
|
||||
|
||||
DOMAIN,bcbolt446c5271-a.akamaihd.net
|
||||
DOMAIN,content.jwplatform.com
|
||||
DOMAIN,edge.api.brightcove.com
|
||||
DOMAIN,videos-f.jwpsrv.com
|
||||
|
||||
DOMAIN-SUFFIX,encoretvb.com
|
||||
|
||||
USER-AGENT,encoreTVB*
|
||||
|
||||
USER-AGENT,TVer-Release*
|
||||
DOMAIN-SUFFIX,tver.jp
|
||||
|
||||
# >> Fox Now
|
||||
|
||||
DOMAIN-SUFFIX,fox.com
|
||||
DOMAIN-SUFFIX,foxdcg.com
|
||||
DOMAIN-SUFFIX,uplynk.com
|
||||
|
||||
USER-AGENT,FOX%20NOW*
|
||||
|
||||
# >> Fox+
|
||||
|
||||
DOMAIN,dashasiafox.akamaized.netflix
|
||||
DOMAIN,staticasiafox.akamaized.net
|
||||
|
||||
DOMAIN-SUFFIX,foxplus.com
|
||||
DOMAIN-SUFFIX,theplatform.com
|
||||
|
||||
USER-AGENT,FOXPlus*
|
||||
|
||||
# >> HBO
|
||||
|
||||
# >> HBO GO & NOW & Max
|
||||
|
||||
DOMAIN-SUFFIX,hbo.com
|
||||
DOMAIN-SUFFIX,hbogo.com
|
||||
DOMAIN-SUFFIX,hbonow.com
|
||||
|
||||
USER-AGENT,HBO%20NOW*
|
||||
USER-AGENT,HBOMAX*
|
||||
|
||||
DOMAIN-SUFFIX,hbomax.com
|
||||
DOMAIN-SUFFIX,hbomaxcdn.com
|
||||
|
||||
# >> HBO Asia
|
||||
|
||||
DOMAIN-SUFFIX,hboasia.com
|
||||
DOMAIN-SUFFIX,hbogoasia.com
|
||||
DOMAIN-SUFFIX,hbogoasia.hk
|
||||
DOMAIN-KEYWORD,.hbogoasia.
|
||||
|
||||
DOMAIN,44wilhpljf.execute-api.ap-southeast-1.amazonaws.com
|
||||
DOMAIN,bcbolthboa-a.akamaihd.net
|
||||
DOMAIN,cf-images.ap-southeast-1.prod.boltdns.net
|
||||
DOMAIN,dai3fd1oh325y.cloudfront.net
|
||||
DOMAIN,hboasia1-i.akamaihd.net
|
||||
DOMAIN,hboasia2-i.akamaihd.net
|
||||
DOMAIN,hboasia3-i.akamaihd.net
|
||||
DOMAIN,hboasia4-i.akamaihd.net
|
||||
DOMAIN,hboasia5-i.akamaihd.net
|
||||
DOMAIN,hbogoprod-vod.akamaized.net
|
||||
DOMAIN,manifest.prod.boltdns.net
|
||||
DOMAIN,players.brightcove.net
|
||||
DOMAIN,s3-ap-southeast-1.amazonaws.com
|
||||
DOMAIN,hboasialive.akamaized.net
|
||||
DOMAIN,hbounify-prod.evergent.com
|
||||
DOMAIN,hbolb.onwardsmg.com
|
||||
|
||||
USER-AGENT,HBO%20GO%20PROD%20HKG*
|
||||
|
||||
USER-AGENT,HBO*
|
||||
|
||||
# >> Hulu
|
||||
|
||||
DOMAIN-SUFFIX,happyon.jp
|
||||
DOMAIN-SUFFIX,hulu.com
|
||||
DOMAIN-SUFFIX,hulu.jp
|
||||
DOMAIN-SUFFIX,hulu.tv
|
||||
DOMAIN-SUFFIX,hulu.us
|
||||
DOMAIN-SUFFIX,huluim.com
|
||||
DOMAIN-SUFFIX,hulustream.com
|
||||
DOMAIN-SUFFIX,hjholdings.jp
|
||||
|
||||
USER-AGENT,Hulu*
|
||||
PROCESS-NAME,com.hulu.plus
|
||||
|
||||
# >> HWTV
|
||||
|
||||
USER-AGENT,HWTVMobile*
|
||||
DOMAIN-SUFFIX,5itv.tv
|
||||
DOMAIN-SUFFIX,ocnttv.com
|
||||
|
||||
# >> ITV
|
||||
DOMAIN,itvpnpmobile-a.akamaihd.net
|
||||
|
||||
DOMAIN-SUFFIX,itv.com
|
||||
DOMAIN-SUFFIX,itvstatic.com
|
||||
|
||||
USER-AGENT,ITV_Player*
|
||||
|
||||
# >> JOOX
|
||||
DOMAIN-SUFFIX,joox.com
|
||||
DOMAIN-KEYWORD,jooxweb-api
|
||||
|
||||
USER-AGENT,JOOX*
|
||||
USER-AGENT,WeMusic*
|
||||
PROCESS-NAME,com.tencent.ibg.joox
|
||||
|
||||
# >> Jwplayer
|
||||
DOMAIN,content.jwplatform.com
|
||||
DOMAIN,videos-f.jwpsrv.com
|
||||
|
||||
# >> KKBOX
|
||||
DOMAIN-SUFFIX,kfs.io
|
||||
DOMAIN-SUFFIX,kkbox.com
|
||||
DOMAIN-SUFFIX,kkbox.com.tw
|
||||
DOMAIN-SUFFIX,kkbox-prime.com
|
||||
DOMAIN-SUFFIX,kktix.com
|
||||
|
||||
# >> KKTV
|
||||
DOMAIN-SUFFIX,kk.stream
|
||||
|
||||
DOMAIN-SUFFIX,kktv.com.tw
|
||||
DOMAIN-SUFFIX,kktv.me
|
||||
|
||||
USER-AGENT,com.kktv.ios.kktv*
|
||||
USER-AGENT,KKTV*
|
||||
|
||||
# >> Line TV
|
||||
DOMAIN,d3c7rimkq79yfu.cloudfront.net
|
||||
DOMAIN-SUFFIX,linetv.tw
|
||||
USER-AGENT,LINE%20TV*
|
||||
PROCESS-NAME,com.linecorp.linetv
|
||||
|
||||
# >> LiTV
|
||||
DOMAIN,litvfreemobile-hichannel.cdn.hinet.net
|
||||
DOMAIN-SUFFIX,litv.tv
|
||||
|
||||
# >> My5
|
||||
DOMAIN,d349g9zuie06uo.cloudfront.net
|
||||
DOMAIN-SUFFIX,channel5.com
|
||||
DOMAIN-SUFFIX,my5.tv
|
||||
|
||||
USER-AGENT,My5*
|
||||
|
||||
# >> Naver TV
|
||||
USER-AGENT,Naver%20TV*
|
||||
DOMAIN-SUFFIX,tv.naver.com
|
||||
DOMAIN-SUFFIX,smartmediarep.com
|
||||
|
||||
# >> myTV Super
|
||||
DOMAIN-SUFFIX,mytvsuper.com
|
||||
DOMAIN-SUFFIX,tvb.com
|
||||
|
||||
USER-AGENT,mytv*
|
||||
|
||||
DOMAIN-KEYWORD,nowtv100
|
||||
DOMAIN-KEYWORD,rthklive
|
||||
|
||||
# TVB Anywhere
|
||||
DOMAIN-KEYWORD,tvbanywhere
|
||||
|
||||
# >> Netflix
|
||||
DOMAIN-SUFFIX,netflix.ca
|
||||
DOMAIN-SUFFIX,netflix.com
|
||||
DOMAIN-SUFFIX,netflix.net
|
||||
DOMAIN-SUFFIX,nflxext.com
|
||||
DOMAIN-SUFFIX,nflximg.com
|
||||
DOMAIN-SUFFIX,nflximg.net
|
||||
DOMAIN-SUFFIX,nflxso.net
|
||||
DOMAIN-SUFFIX,nflxvideo.net
|
||||
DOMAIN-SUFFIX,nflxsearch.net
|
||||
DOMAIN-SUFFIX,netflix.com.edgesuite.net
|
||||
DOMAIN-KEYWORD,netflixdnstest
|
||||
DOMAIN-KEYWORD,dualstack.apiproxy-
|
||||
DOMAIN-KEYWORD,dualstack.ichnaea-web-
|
||||
DOMAIN-KEYWORD,apiproxy-device-prod-nlb-
|
||||
|
||||
USER-AGENT,Argo*
|
||||
PROCESS-NAME,com.netflix.mediaclient
|
||||
|
||||
# >> niconico
|
||||
DOMAIN-SUFFIX,dmc.nico
|
||||
DOMAIN-SUFFIX,nicovideo.jp
|
||||
DOMAIN-SUFFIX,nimg.jp
|
||||
DOMAIN-SUFFIX,socdm.com
|
||||
|
||||
USER-AGENT,Niconico*
|
||||
|
||||
# >> Now E
|
||||
DOMAIN-SUFFIX,nowe.com
|
||||
DOMAIN-SUFFIX,nowestatic.com
|
||||
|
||||
# >> Paramount+
|
||||
USER-AGENT,PPlus*
|
||||
DOMAIN-SUFFIX,cbsi.com
|
||||
DOMAIN-SUFFIX,cbsaavideo.com
|
||||
DOMAIN-SUFFIX,cbsivideo.com
|
||||
DOMAIN-SUFFIX,paramountplus.com
|
||||
DOMAIN-SUFFIX,pplusstatic.com
|
||||
DOMAIN,cbsi.live.ott.irdeto.com
|
||||
DOMAIN,cbsplaylistserver.aws.syncbak.com
|
||||
DOMAIN,cbsservice.aws.syncbak.com
|
||||
DOMAIN,link.theplatform.com
|
||||
|
||||
# >> PBS
|
||||
USER-AGENT,PBS*
|
||||
DOMAIN-SUFFIX,pbs.org
|
||||
|
||||
# >> Peacock
|
||||
USER-AGENT,PeacockMobile*
|
||||
DOMAIN-SUFFIX,peacocktv.com
|
||||
|
||||
# >> Pandora
|
||||
DOMAIN-SUFFIX,pandora.com
|
||||
USER-AGENT,Pandora*
|
||||
|
||||
# >> PBS
|
||||
DOMAIN-SUFFIX,pbs.org
|
||||
USER-AGENT,PBS*
|
||||
|
||||
# >> Pornhub
|
||||
DOMAIN-SUFFIX,phncdn.com
|
||||
DOMAIN-SUFFIX,phprcdn.com
|
||||
DOMAIN-SUFFIX,pornhub.com
|
||||
DOMAIN-SUFFIX,pornhubpremium.com
|
||||
|
||||
# >> SoundCloud
|
||||
DOMAIN-SUFFIX,p-cdn.us
|
||||
DOMAIN-SUFFIX,sndcdn.com
|
||||
DOMAIN-SUFFIX,soundcloud.com
|
||||
|
||||
USER-AGENT,SoundCloud*
|
||||
|
||||
# >> Spotify
|
||||
DOMAIN-KEYWORD,-spotify-com
|
||||
|
||||
DOMAIN-SUFFIX,pscdn.co
|
||||
DOMAIN-SUFFIX,scdn.co
|
||||
DOMAIN-SUFFIX,spoti.fi
|
||||
DOMAIN-SUFFIX,spotify.com
|
||||
DOMAIN-SUFFIX,byspotify.com
|
||||
DOMAIN-SUFFIX,spotify-everywhere.com
|
||||
DOMAIN-SUFFIX,spotify.design
|
||||
DOMAIN-SUFFIX,spotifycdn.com
|
||||
DOMAIN-SUFFIX,spotifycdn.net
|
||||
DOMAIN-SUFFIX,spotifycharts.com
|
||||
DOMAIN-SUFFIX,spotifycodes.com
|
||||
DOMAIN-SUFFIX,spotifyforbrands.com
|
||||
DOMAIN-SUFFIX,spotifyjobs.com
|
||||
DOMAIN-SUFFIX,spotify-com.akamaized.net
|
||||
DOMAIN-SUFFIX,spotifynewsroom.jp
|
||||
DOMAIN-SUFFIX,spotilocal.com
|
||||
DOMAIN-SUFFIX,tospotify.com
|
||||
|
||||
USER-AGENT,*Spotify*
|
||||
|
||||
# >> TaiwanGood
|
||||
DOMAIN,hamifans.emome.net
|
||||
DOMAIN-SUFFIX,skyking.com.tw
|
||||
USER-AGENT,TaiwanGood*
|
||||
|
||||
# >> TIDAL
|
||||
USER-AGENT,TIDAL*
|
||||
DOMAIN-SUFFIX,tidal.com
|
||||
DOMAIN-SUFFIX,tidalhifi.com
|
||||
|
||||
# >> TikTok
|
||||
|
||||
DOMAIN-SUFFIX,byteoversea.com
|
||||
DOMAIN-SUFFIX,ibytedtos.com
|
||||
DOMAIN-SUFFIX,ibyteimg.com
|
||||
DOMAIN-SUFFIX,ipstatp.com
|
||||
DOMAIN-SUFFIX,isnssdk.com
|
||||
DOMAIN-SUFFIX,muscdn.com
|
||||
DOMAIN-SUFFIX,musical.ly
|
||||
DOMAIN-SUFFIX,tiktok.com
|
||||
DOMAIN-SUFFIX,tik-tokapi.com
|
||||
DOMAIN-SUFFIX,tiktokcdn.com
|
||||
DOMAIN-SUFFIX,tiktokv.com
|
||||
DOMAIN-KEYWORD,-tiktokcdn-com
|
||||
|
||||
USER-AGENT,TikTok*
|
||||
|
||||
# >> Twitch
|
||||
DOMAIN-SUFFIX,jtvnw.net
|
||||
DOMAIN-SUFFIX,ttvnw.net
|
||||
DOMAIN-SUFFIX,twitch.tv
|
||||
DOMAIN-SUFFIX,twitchcdn.net
|
||||
DOMAIN-SUFFIX,twitchsvc.net
|
||||
DOMAIN-SUFFIX,ext-twitch.tv
|
||||
PROCESS-NAME,tv.twitch.android.app
|
||||
|
||||
# >> ViuTV
|
||||
DOMAIN,api.viu.now.com
|
||||
DOMAIN,d1k2us671qcoau.cloudfront.net
|
||||
DOMAIN,d2anahhhmp1ffz.cloudfront.net
|
||||
DOMAIN,dfp6rglgjqszk.cloudfront.net
|
||||
|
||||
DOMAIN-SUFFIX,viu.com
|
||||
DOMAIN-SUFFIX,viu.now.com
|
||||
DOMAIN-SUFFIX,viu.tv
|
||||
PROCESS-NAME,com.viu.pad
|
||||
PROCESS-NAME,com.viu.phone
|
||||
PROCESS-NAME,com.vuclip.viu
|
||||
USER-AGENT,Viu*
|
||||
|
||||
# >> YouTube
|
||||
DOMAIN,youtubei.googleapis.com
|
||||
DOMAIN,youtube.googleapis.com
|
||||
DOMAIN-SUFFIX,googlevideo.com
|
||||
DOMAIN-SUFFIX,youtube.com
|
||||
DOMAIN-SUFFIX,withyoutube.com
|
||||
|
||||
DOMAIN-SUFFIX,youtubeeducation.com
|
||||
DOMAIN-SUFFIX,youtubegaming.com
|
||||
DOMAIN-SUFFIX,youtubekids.com
|
||||
DOMAIN-SUFFIX,youtube-nocookie.com
|
||||
|
||||
USER-AGENT,com.google.ios.youtube*
|
||||
USER-AGENT,YouTube*
|
||||
|
||||
# >> YouTubeMusic
|
||||
USER-AGENT,com.google.ios.youtubemusic*
|
||||
USER-AGENT,YouTubeMusic*
|
||||
|
||||
# >> SHOWTIME
|
||||
DOMAIN-SUFFIX,sho.com
|
||||
DOMAIN-SUFFIX,showtime.com
|
||||
|
||||
# >> iQiYi Global
|
||||
DOMAIN-SUFFIX,iq.com
|
||||
DOMAIN,cache.video.iqiyi.com
|
||||
DOMAIN,cache-video.iq.com
|
||||
DOMAIN,akmcdnoversea-tw.inter.ptqy.gitv.tv
|
||||
DOMAIN,chuangcachecdnoversea-tw.inter.ptqy.gitv.tv
|
||||
DOMAIN-SUFFIX,inter.iqiyi.com
|
||||
DOMAIN-SUFFIX,intl-rcd.iqiyi.com
|
||||
DOMAIN-SUFFIX,intl-subscription.iqiyi.com
|
||||
DOMAIN-SUFFIX,intl.iqiyi.com
|
||||
|
||||
# > Himalaya Podcast
|
||||
USER-AGENT,Himalaya*
|
||||
DOMAIN-SUFFIX,himalaya.com
|
||||
|
||||
# > Overcast
|
||||
USER-AGENT,Overcast*
|
||||
DOMAIN-SUFFIX,overcast.fm
|
||||
|
||||
# > WeTV
|
||||
USER-AGENT,WeTV*
|
||||
DOMAIN-SUFFIX,wetv.vip
|
||||
DOMAIN-SUFFIX,wetvinfo.com
|
||||
|
||||
# > Max
|
||||
USER-AGENT,Max*
|
||||
PROCESS-NAME,com.wbd.stream
|
||||
DOMAIN-SUFFIX,max.com
|
||||
DOMAIN-SUFFIX,discomax.com
|
||||
|
||||
# --- End of Stream Service Section ---
|
||||
992
Source/stream.js
Normal file
992
Source/stream.js
Normal file
@ -0,0 +1,992 @@
|
||||
// @ts-check
|
||||
|
||||
/**
|
||||
* @typedef {Object} StreamService
|
||||
* @property {string} name
|
||||
* @property {Object} [ip]
|
||||
* @property {string[]} ip.v4
|
||||
* @property {string[]} ip.v6
|
||||
* @property {string[]} rules
|
||||
*/
|
||||
|
||||
/** @type {StreamService} */
|
||||
const $4GTV = {
|
||||
name: '4gtv',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,4gtv.tv',
|
||||
'DOMAIN,4gtvfreepcvod-cds.cdn.hinet.net'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const ALL4 = {
|
||||
name: 'All4',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,c4assets.com',
|
||||
'DOMAIN-SUFFIX,channel4.com',
|
||||
|
||||
'USER-AGENT,All4*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const AMAZON_PRIME_VIDEO = {
|
||||
name: 'Amazon Prime Video',
|
||||
rules: [
|
||||
'DOMAIN,avodmp4s3ww-a.akamaihd.net',
|
||||
'DOMAIN,d1v5ir2lpwr8os.cloudfront.net',
|
||||
'DOMAIN,d22qjgkvxw22r6.cloudfront.net',
|
||||
'DOMAIN,d25xi40x97liuc.cloudfront.net',
|
||||
'DOMAIN,dmqdd6hw24ucf.cloudfront.net',
|
||||
'DOMAIN,d27xxe7juh1us6.cloudfront.net',
|
||||
'DOMAIN,d184dfn36gombl.cloudfront.net',
|
||||
'DOMAIN,d1xfray82862hr.cloudfront.net',
|
||||
'DOMAIN,d3196yreox78o9.cloudfront.net',
|
||||
|
||||
'DOMAIN-KEYWORD,avoddashs',
|
||||
|
||||
'DOMAIN-SUFFIX,aiv-cdn.net',
|
||||
'DOMAIN-SUFFIX,aiv-delivery.net',
|
||||
'DOMAIN-SUFFIX,amazonvideo.com',
|
||||
'DOMAIN-SUFFIX,amazonvideo.cc',
|
||||
'DOMAIN-SUFFIX,media-amazon.com',
|
||||
'DOMAIN-SUFFIX,primevideo.com',
|
||||
'DOMAIN-SUFFIX,prime-video.com',
|
||||
'DOMAIN-SUFFIX,primevideo.cc',
|
||||
'DOMAIN-SUFFIX,primevideo.info',
|
||||
'DOMAIN-SUFFIX,primevideo.org',
|
||||
'DOMAIN-SUFFIX,primevideo.tv',
|
||||
'DOMAIN-SUFFIX,amazonvideodirect.cc',
|
||||
'DOMAIN-SUFFIX,amazonprimevideos.com',
|
||||
'DOMAIN-SUFFIX,atv-ps.amazon.com',
|
||||
'DOMAIN-SUFFIX,avodmp4s3ww-a.akamaihd.net',
|
||||
'DOMAIN-SUFFIX,fls-na.amazon.com',
|
||||
|
||||
'USER-AGENT,InstantVideo.US*',
|
||||
'USER-AGENT,Prime%20Video*',
|
||||
'PROCESS-NAME,com.amazon.avod.thirdpartyclient'
|
||||
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const ABEMA_TV = {
|
||||
name: 'AbemaTV',
|
||||
rules: [
|
||||
'DOMAIN-KEYWORD,abematv.akamaized.net',
|
||||
'DOMAIN-SUFFIX,abema.io',
|
||||
'DOMAIN-SUFFIX,abema.tv',
|
||||
'DOMAIN-SUFFIX,ameba.jp',
|
||||
'DOMAIN-SUFFIX,abema-tv.com',
|
||||
'DOMAIN-SUFFIX,hayabusa.dev',
|
||||
'DOMAIN-SUFFIX,hayabusa.io',
|
||||
'DOMAIN-SUFFIX,hayabusa.media',
|
||||
'DOMAIN-SUFFIX,amebame.com',
|
||||
'DOMAIN-SUFFIX,amebaownd.com',
|
||||
'DOMAIN-SUFFIX,amebaowndme.com',
|
||||
'DOMAIN-SUFFIX,ameblo.jp',
|
||||
'DOMAIN-SUFFIX,dokusho-ojikan.jp',
|
||||
'DOMAIN-SUFFIX,winticket.jp',
|
||||
|
||||
'USER-AGENT,AbemaTV*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const APPLE_TV = {
|
||||
name: 'Apple TV',
|
||||
rules: [
|
||||
'DOMAIN,ocvideo.apple.com',
|
||||
'DOMAIN,linear.tv.apple.com',
|
||||
'DOMAIN,play-edge.itunes.apple.com',
|
||||
'DOMAIN,np-edge.itunes.apple.com',
|
||||
'DOMAIN,uts-api.itunes.apple.com',
|
||||
'DOMAIN,hls-amt.itunes.apple.com',
|
||||
'DOMAIN,hls.itunes.apple.com',
|
||||
|
||||
'USER-AGENT,AppleTV*',
|
||||
'USER-AGENT,com.apple.tv*',
|
||||
'PROCESS-NAME,tv'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const APPLE_MUSIC_TV = {
|
||||
name: 'Apple Music TV',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,applemusic.com',
|
||||
'PROCESS-NAME,music'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const BAHAMUT = {
|
||||
name: 'Bahamut',
|
||||
rules: [
|
||||
'DOMAIN,bahamut.akamaized.net',
|
||||
'DOMAIN,gamer-cds.cdn.hinet.net',
|
||||
'DOMAIN,gamer2-cds.cdn.hinet.net',
|
||||
|
||||
'DOMAIN-SUFFIX,viblast.com',
|
||||
|
||||
'DOMAIN-SUFFIX,bahamut.com.tw',
|
||||
'DOMAIN-SUFFIX,gamer.com.tw',
|
||||
|
||||
'USER-AGENT,Anime*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const BBC = {
|
||||
name: 'BBC',
|
||||
rules: [
|
||||
'DOMAIN-KEYWORD,bbcfmt',
|
||||
'DOMAIN-KEYWORD,uk-live',
|
||||
|
||||
'DOMAIN-SUFFIX,bbc.co.uk',
|
||||
'DOMAIN-SUFFIX,bbci.co.uk',
|
||||
|
||||
'USER-AGENT,BBCiPlayer*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const BILIBILI_INTL = {
|
||||
name: 'Bilibili International',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,biliintl.com',
|
||||
'DOMAIN,apm-misaka.biliapi.net',
|
||||
'DOMAIN,p.bstarstatic.com',
|
||||
'DOMAIN,p-bstarstatic.akamaized.net',
|
||||
'DOMAIN,upos-bstar-mirrorakam.akamaized.net',
|
||||
'DOMAIN,upos-bstar1-mirrorakam.akamaized.net',
|
||||
'DOMAIN-SUFFIX,bilibili.tv',
|
||||
'PROCESS-NAME,com.bstar.intl'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const DAZN = {
|
||||
name: 'DAZN',
|
||||
rules: [
|
||||
'DOMAIN,d151l6v8er5bdm.cloudfront.net',
|
||||
'DOMAIN,d1sgwhnao7452x.cloudfront.net',
|
||||
|
||||
'DOMAIN-KEYWORD,voddazn',
|
||||
|
||||
'DOMAIN-SUFFIX,dazn-api.com',
|
||||
'DOMAIN-SUFFIX,dazn.com',
|
||||
'DOMAIN-SUFFIX,dazndn.com',
|
||||
'DOMAIN-SUFFIX,indazn.com',
|
||||
'DOMAIN-SUFFIX,indaznlab.com',
|
||||
|
||||
'DOMAIN-SUFFIX,dca-ll-livedazn-dznlivejp.s.llnwi.net',
|
||||
'DOMAIN-SUFFIX,dcalivedazn.akamaized.net',
|
||||
'DOMAIN-SUFFIX,dcblivedazn.akamaized.net',
|
||||
|
||||
'USER-AGENT,DAZN*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const DEEZER = {
|
||||
name: 'Deezer',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,deezer.com',
|
||||
'DOMAIN-SUFFIX,dzcdn.net',
|
||||
'USER-AGENT,Deezer*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const DISNEY_PLUS = {
|
||||
name: 'Disney+',
|
||||
rules: [
|
||||
'DOMAIN,cdn.registerdisney.go.com',
|
||||
|
||||
'DOMAIN-SUFFIX,bamgrid.com',
|
||||
'DOMAIN-SUFFIX,disney-plus.net',
|
||||
'DOMAIN-SUFFIX,disneyplus.com',
|
||||
'DOMAIN-SUFFIX,dssott.com',
|
||||
'DOMAIN-SUFFIX,disneystreaming.com',
|
||||
|
||||
'USER-AGENT,Disney+*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const DISCOVERY_PLUS = {
|
||||
name: 'Discovery+',
|
||||
rules: [
|
||||
'USER-AGENT,DPlus*',
|
||||
'USER-AGENT,discovery+*',
|
||||
'DOMAIN-SUFFIX,disco-api.com',
|
||||
'DOMAIN-SUFFIX,discoveryplus.co.uk',
|
||||
'DOMAIN-SUFFIX,discoveryplus.com',
|
||||
'DOMAIN-SUFFIX,discoveryplus.in',
|
||||
'DOMAIN-SUFFIX,dnitv.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const DMM = {
|
||||
name: 'DMM',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,dmm.co.jp',
|
||||
'DOMAIN-SUFFIX,dmm.com',
|
||||
'DOMAIN-SUFFIX,dmm-extension.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const ENCORE_TVB = {
|
||||
name: 'encoreTVB',
|
||||
rules: [
|
||||
'DOMAIN,bcbolt446c5271-a.akamaihd.net',
|
||||
|
||||
'DOMAIN,edge.api.brightcove.com',
|
||||
|
||||
'DOMAIN-SUFFIX,encoretvb.com',
|
||||
|
||||
'USER-AGENT,encoreTVB*',
|
||||
|
||||
'USER-AGENT,TVer-Release*',
|
||||
'DOMAIN-SUFFIX,tver.jp'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const FOX_NOW = {
|
||||
name: 'Fox Now',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,fox.com',
|
||||
'DOMAIN-SUFFIX,foxdcg.com',
|
||||
'DOMAIN-SUFFIX,uplynk.com',
|
||||
|
||||
'USER-AGENT,FOX%20NOW*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const FOX_PLUS = {
|
||||
name: 'Fox+',
|
||||
rules: [
|
||||
'DOMAIN,dashasiafox.akamaized.netflix',
|
||||
'DOMAIN,staticasiafox.akamaized.net',
|
||||
|
||||
'DOMAIN-SUFFIX,foxplus.com',
|
||||
'DOMAIN-SUFFIX,theplatform.com',
|
||||
|
||||
'USER-AGENT,FOXPlus*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const HBO = {
|
||||
name: 'HBO Go / HBO Now / HBO Max',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,hbo.com',
|
||||
'DOMAIN-SUFFIX,hbogo.com',
|
||||
'DOMAIN-SUFFIX,hbonow.com',
|
||||
|
||||
'USER-AGENT,HBO%20NOW*',
|
||||
'USER-AGENT,HBOMAX*',
|
||||
|
||||
'DOMAIN-SUFFIX,hbomax.com',
|
||||
'DOMAIN-SUFFIX,hbomaxcdn.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const HBO_ASIA = {
|
||||
name: 'HBO Asia',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,hboasia.com',
|
||||
'DOMAIN-SUFFIX,hbogoasia.com',
|
||||
'DOMAIN-SUFFIX,hbogoasia.hk',
|
||||
'DOMAIN-KEYWORD,.hbogoasia.',
|
||||
|
||||
'DOMAIN,44wilhpljf.execute-api.ap-southeast-1.amazonaws.com',
|
||||
'DOMAIN,bcbolthboa-a.akamaihd.net',
|
||||
'DOMAIN,cf-images.ap-southeast-1.prod.boltdns.net',
|
||||
'DOMAIN,dai3fd1oh325y.cloudfront.net',
|
||||
'DOMAIN,hboasia1-i.akamaihd.net',
|
||||
'DOMAIN,hboasia2-i.akamaihd.net',
|
||||
'DOMAIN,hboasia3-i.akamaihd.net',
|
||||
'DOMAIN,hboasia4-i.akamaihd.net',
|
||||
'DOMAIN,hboasia5-i.akamaihd.net',
|
||||
'DOMAIN,hbogoprod-vod.akamaized.net',
|
||||
'DOMAIN,manifest.prod.boltdns.net',
|
||||
'DOMAIN,players.brightcove.net',
|
||||
'DOMAIN,s3-ap-southeast-1.amazonaws.com',
|
||||
'DOMAIN,hboasialive.akamaized.net',
|
||||
'DOMAIN,hbounify-prod.evergent.com',
|
||||
'DOMAIN,hbolb.onwardsmg.com',
|
||||
|
||||
'USER-AGENT,HBO%20GO%20PROD%20HKG*',
|
||||
|
||||
'USER-AGENT,HBO*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const HIMALAYA_FM = {
|
||||
name: 'Himalaya FM',
|
||||
rules: [
|
||||
'USER-AGENT,Himalaya*',
|
||||
'DOMAIN-SUFFIX,himalaya.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const HULU = {
|
||||
name: 'Hulu',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,happyon.jp',
|
||||
'DOMAIN-SUFFIX,hulu.com',
|
||||
'DOMAIN-SUFFIX,hulu.jp',
|
||||
'DOMAIN-SUFFIX,hulu.tv',
|
||||
'DOMAIN-SUFFIX,hulu.us',
|
||||
'DOMAIN-SUFFIX,huluim.com',
|
||||
'DOMAIN-SUFFIX,hulustream.com',
|
||||
'DOMAIN-SUFFIX,hjholdings.jp',
|
||||
|
||||
'USER-AGENT,Hulu*',
|
||||
'PROCESS-NAME,com.hulu.plus'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const HWTV = {
|
||||
name: 'HWTV',
|
||||
rules: [
|
||||
'USER-AGENT,HWTVMobile*',
|
||||
'DOMAIN-SUFFIX,5itv.tv',
|
||||
'DOMAIN-SUFFIX,ocnttv.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const ITV = {
|
||||
name: 'ITV',
|
||||
rules: [
|
||||
'DOMAIN,itvpnpmobile-a.akamaihd.net',
|
||||
|
||||
'DOMAIN-SUFFIX,itv.com',
|
||||
'DOMAIN-SUFFIX,itvstatic.com',
|
||||
|
||||
'USER-AGENT,ITV_Player*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const IQIYI_GLOBAL = {
|
||||
name: 'iQiYi Global',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,iq.com',
|
||||
'DOMAIN,cache.video.iqiyi.com',
|
||||
'DOMAIN,cache-video.iq.com',
|
||||
'DOMAIN,akmcdnoversea-tw.inter.ptqy.gitv.tv',
|
||||
'DOMAIN,chuangcachecdnoversea-tw.inter.ptqy.gitv.tv',
|
||||
'DOMAIN-SUFFIX,inter.iqiyi.com',
|
||||
'DOMAIN-SUFFIX,intl-rcd.iqiyi.com',
|
||||
'DOMAIN-SUFFIX,intl-subscription.iqiyi.com',
|
||||
'DOMAIN-SUFFIX,intl.iqiyi.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const JOOX = {
|
||||
name: 'JOOX',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,joox.com',
|
||||
'DOMAIN-KEYWORD,jooxweb-api',
|
||||
|
||||
'USER-AGENT,JOOX*',
|
||||
'USER-AGENT,WeMusic*',
|
||||
'PROCESS-NAME,com.tencent.ibg.joox'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const KKBOX = {
|
||||
name: 'KKBOX',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,kfs.io',
|
||||
'DOMAIN-SUFFIX,kkbox.com',
|
||||
'DOMAIN-SUFFIX,kkbox.com.tw',
|
||||
'DOMAIN-SUFFIX,kkbox-prime.com',
|
||||
'DOMAIN-SUFFIX,kktix.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const KKTV = {
|
||||
name: 'KKTV',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,kk.stream',
|
||||
|
||||
'DOMAIN-SUFFIX,kktv.com.tw',
|
||||
'DOMAIN-SUFFIX,kktv.me',
|
||||
|
||||
'USER-AGENT,com.kktv.ios.kktv*',
|
||||
'USER-AGENT,KKTV*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const LINE_TV = {
|
||||
name: 'Line TV',
|
||||
rules: [
|
||||
'DOMAIN,d3c7rimkq79yfu.cloudfront.net',
|
||||
'DOMAIN-SUFFIX,linetv.tw',
|
||||
'USER-AGENT,LINE%20TV*',
|
||||
'PROCESS-NAME,com.linecorp.linetv'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const LITV = {
|
||||
name: 'LiTV',
|
||||
rules: [
|
||||
'DOMAIN,litvfreemobile-hichannel.cdn.hinet.net',
|
||||
'DOMAIN-SUFFIX,litv.tv'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const MAX = {
|
||||
name: 'Max',
|
||||
rules: [
|
||||
'USER-AGENT,Max*',
|
||||
'PROCESS-NAME,com.wbd.stream',
|
||||
'DOMAIN-SUFFIX,max.com',
|
||||
'DOMAIN-SUFFIX,discomax.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const MY5 = {
|
||||
name: 'My5',
|
||||
rules: [
|
||||
'DOMAIN,d349g9zuie06uo.cloudfront.net',
|
||||
'DOMAIN-SUFFIX,channel5.com',
|
||||
'DOMAIN-SUFFIX,my5.tv',
|
||||
|
||||
'USER-AGENT,My5*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const MYTV_SUPER = {
|
||||
name: 'myTV Super',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,mytvsuper.com',
|
||||
'DOMAIN-SUFFIX,tvb.com',
|
||||
|
||||
'USER-AGENT,mytv*',
|
||||
|
||||
'DOMAIN-KEYWORD,nowtv100',
|
||||
'DOMAIN-KEYWORD,rthklive'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const NAVER_TV = {
|
||||
name: 'Naver TV',
|
||||
rules: [
|
||||
'USER-AGENT,Naver%20TV*',
|
||||
'DOMAIN-SUFFIX,tv.naver.com',
|
||||
'DOMAIN-SUFFIX,smartmediarep.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const NICONICO = {
|
||||
name: 'niconico',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,dmc.nico',
|
||||
'DOMAIN-SUFFIX,nicovideo.jp',
|
||||
'DOMAIN-SUFFIX,nimg.jp',
|
||||
'DOMAIN-SUFFIX,socdm.com',
|
||||
|
||||
'USER-AGENT,Niconico*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const NETFLIX = {
|
||||
name: 'Netflix',
|
||||
ip: {
|
||||
v4: [
|
||||
'23.246.18.0/23',
|
||||
'37.77.184.0/21',
|
||||
'45.57.0.0/17',
|
||||
'64.120.128.0/17',
|
||||
'66.197.128.0/17',
|
||||
'69.53.224.0/19',
|
||||
'108.175.32.0/20',
|
||||
'185.2.220.0/22',
|
||||
'185.9.188.0/22',
|
||||
'192.173.64.0/18',
|
||||
'198.38.96.0/19',
|
||||
'198.45.48.0/20',
|
||||
'208.75.76.0/22'
|
||||
],
|
||||
v6: [
|
||||
'2607:fb10::/32',
|
||||
'2620:10c:7000::/44',
|
||||
'2a00:86c0::/32',
|
||||
'2a03:5640::/32'
|
||||
]
|
||||
},
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,netflix.ca',
|
||||
'DOMAIN-SUFFIX,netflix.com',
|
||||
'DOMAIN-SUFFIX,netflix.net',
|
||||
'DOMAIN-SUFFIX,nflxext.com',
|
||||
'DOMAIN-SUFFIX,nflximg.com',
|
||||
'DOMAIN-SUFFIX,nflximg.net',
|
||||
'DOMAIN-SUFFIX,nflxso.net',
|
||||
'DOMAIN-SUFFIX,nflxvideo.net',
|
||||
'DOMAIN-SUFFIX,nflxsearch.net',
|
||||
'DOMAIN-SUFFIX,netflix.com.edgesuite.net',
|
||||
'DOMAIN-KEYWORD,netflixdnstest',
|
||||
'DOMAIN-KEYWORD,dualstack.apiproxy-',
|
||||
'DOMAIN-KEYWORD,dualstack.ichnaea-web-',
|
||||
'DOMAIN-KEYWORD,apiproxy-device-prod-nlb-',
|
||||
|
||||
'USER-AGENT,Argo*',
|
||||
'PROCESS-NAME,com.netflix.mediaclient'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const NOW_E = {
|
||||
name: 'Now E',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,nowe.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const OVERCAST_FM = {
|
||||
name: 'Overcast FM',
|
||||
rules: [
|
||||
'USER-AGENT,Overcast*',
|
||||
'DOMAIN-SUFFIX,overcast.fm'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const PARAMOUNT = {
|
||||
name: 'Paramount+',
|
||||
rules: [
|
||||
'USER-AGENT,PPlus*',
|
||||
'DOMAIN-SUFFIX,cbsi.com',
|
||||
'DOMAIN-SUFFIX,cbsaavideo.com',
|
||||
'DOMAIN-SUFFIX,cbsivideo.com',
|
||||
'DOMAIN-SUFFIX,paramountplus.com',
|
||||
'DOMAIN,cbsi.live.ott.irdeto.com',
|
||||
'DOMAIN,cbsplaylistserver.aws.syncbak.com',
|
||||
'DOMAIN,cbsservice.aws.syncbak.com',
|
||||
'DOMAIN,link.theplatform.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const PBS = {
|
||||
name: 'PBS',
|
||||
rules: [
|
||||
'USER-AGENT,PBS*',
|
||||
'DOMAIN-SUFFIX,pbs.org'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const PEACOCK = {
|
||||
name: 'Peacock',
|
||||
rules: [
|
||||
'USER-AGENT,PeacockMobile*',
|
||||
'DOMAIN-SUFFIX,peacocktv.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const PANDORA = {
|
||||
name: 'Pandora',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,pandora.com',
|
||||
'USER-AGENT,Pandora*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const PORNHUB = {
|
||||
name: 'Pornhub',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,phprcdn.com',
|
||||
'DOMAIN-SUFFIX,pornhub.com',
|
||||
'DOMAIN-SUFFIX,pornhubpremium.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const SOUNDCLOUD = {
|
||||
name: 'SoundCloud',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,sndcdn.com',
|
||||
'DOMAIN-SUFFIX,soundcloud.com',
|
||||
|
||||
'USER-AGENT,SoundCloud*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const SPOTIFY = {
|
||||
name: 'Spotify',
|
||||
ip: {
|
||||
v4: ['35.186.224.47/32'],
|
||||
v6: []
|
||||
},
|
||||
rules: [
|
||||
'DOMAIN-KEYWORD,-spotify-com',
|
||||
|
||||
'DOMAIN-SUFFIX,pscdn.co',
|
||||
'DOMAIN-SUFFIX,scdn.co',
|
||||
'DOMAIN-SUFFIX,spoti.fi',
|
||||
'DOMAIN-SUFFIX,spotify.com',
|
||||
'DOMAIN-SUFFIX,byspotify.com',
|
||||
'DOMAIN-SUFFIX,spotify-everywhere.com',
|
||||
'DOMAIN-SUFFIX,spotify.design',
|
||||
'DOMAIN-SUFFIX,spotifycdn.com',
|
||||
'DOMAIN-SUFFIX,spotifycdn.net',
|
||||
'DOMAIN-SUFFIX,spotifycharts.com',
|
||||
'DOMAIN-SUFFIX,spotifycodes.com',
|
||||
'DOMAIN-SUFFIX,spotifyforbrands.com',
|
||||
'DOMAIN-SUFFIX,spotifyjobs.com',
|
||||
'DOMAIN-SUFFIX,spotify-com.akamaized.net',
|
||||
'DOMAIN-SUFFIX,spotifynewsroom.jp',
|
||||
'DOMAIN-SUFFIX,spotilocal.com',
|
||||
'DOMAIN-SUFFIX,tospotify.com',
|
||||
|
||||
'USER-AGENT,*Spotify*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const TVB_ANYWHERE = {
|
||||
name: 'TVB Anywhere',
|
||||
rules: [
|
||||
'DOMAIN-KEYWORD,tvbanywhere'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const TAIWAN_GOOD = {
|
||||
name: 'TaiwanGood',
|
||||
rules: [
|
||||
'DOMAIN,hamifans.emome.net',
|
||||
'DOMAIN-SUFFIX,skyking.com.tw',
|
||||
'USER-AGENT,TaiwanGood*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const TIDAL = {
|
||||
name: 'TIDAL',
|
||||
rules: [
|
||||
'USER-AGENT,TIDAL*',
|
||||
'DOMAIN-SUFFIX,tidal.com',
|
||||
'DOMAIN-SUFFIX,tidalhifi.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const TIKTOK = {
|
||||
name: 'TikTok',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,byteoversea.com',
|
||||
'DOMAIN-SUFFIX,ibytedtos.com',
|
||||
'DOMAIN-SUFFIX,ibyteimg.com',
|
||||
'DOMAIN-SUFFIX,ipstatp.com',
|
||||
'DOMAIN-SUFFIX,isnssdk.com',
|
||||
'DOMAIN-SUFFIX,muscdn.com',
|
||||
'DOMAIN-SUFFIX,musical.ly',
|
||||
'DOMAIN-SUFFIX,tiktok.com',
|
||||
'DOMAIN-SUFFIX,tik-tokapi.com',
|
||||
'DOMAIN-SUFFIX,tiktokcdn.com',
|
||||
'DOMAIN-SUFFIX,tiktokv.com',
|
||||
'DOMAIN-KEYWORD,-tiktokcdn-com',
|
||||
|
||||
'USER-AGENT,TikTok*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const TWITCH = {
|
||||
name: 'Twitch',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,jtvnw.net',
|
||||
'DOMAIN-SUFFIX,ttvnw.net',
|
||||
'DOMAIN-SUFFIX,twitch.tv',
|
||||
'DOMAIN-SUFFIX,twitchcdn.net',
|
||||
'DOMAIN-SUFFIX,twitchsvc.net',
|
||||
'DOMAIN-SUFFIX,ext-twitch.tv',
|
||||
'PROCESS-NAME,tv.twitch.android.app'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const VIUTV = {
|
||||
name: 'ViuTV',
|
||||
rules: [
|
||||
'DOMAIN,api.viu.now.com',
|
||||
'DOMAIN,d1k2us671qcoau.cloudfront.net',
|
||||
'DOMAIN,d2anahhhmp1ffz.cloudfront.net',
|
||||
'DOMAIN,dfp6rglgjqszk.cloudfront.net',
|
||||
|
||||
'DOMAIN-SUFFIX,viu.com',
|
||||
'DOMAIN-SUFFIX,viu.now.com',
|
||||
'DOMAIN-SUFFIX,viu.tv',
|
||||
'PROCESS-NAME,com.viu.pad',
|
||||
'PROCESS-NAME,com.viu.phone',
|
||||
'PROCESS-NAME,com.vuclip.viu',
|
||||
'USER-AGENT,Viu*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const YOUTUBE = {
|
||||
name: 'YouTube',
|
||||
rules: [
|
||||
'DOMAIN,youtubei.googleapis.com',
|
||||
'DOMAIN,youtube.googleapis.com',
|
||||
'DOMAIN-SUFFIX,googlevideo.com',
|
||||
'DOMAIN-SUFFIX,youtube.com',
|
||||
'DOMAIN-SUFFIX,withyoutube.com',
|
||||
|
||||
'DOMAIN-SUFFIX,youtubeeducation.com',
|
||||
'DOMAIN-SUFFIX,youtubegaming.com',
|
||||
'DOMAIN-SUFFIX,youtubekids.com',
|
||||
'DOMAIN-SUFFIX,youtube-nocookie.com',
|
||||
|
||||
'USER-AGENT,com.google.ios.youtube*',
|
||||
'USER-AGENT,YouTube*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const YOUTUBE_MUSIC = {
|
||||
name: 'YouTube Music',
|
||||
rules: [
|
||||
'USER-AGENT,com.google.ios.youtubemusic*',
|
||||
'USER-AGENT,YouTubeMusic*'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const SHOWTIME = {
|
||||
name: 'SHOWTIME',
|
||||
rules: [
|
||||
'DOMAIN-SUFFIX,sho.com',
|
||||
'DOMAIN-SUFFIX,showtime.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService} */
|
||||
const WETV = {
|
||||
name: 'WeTV',
|
||||
ip: {
|
||||
v4: ['150.109.28.51/32'],
|
||||
v6: []
|
||||
},
|
||||
rules: [
|
||||
'USER-AGENT,WeTV*',
|
||||
'DOMAIN-SUFFIX,wetv.vip',
|
||||
'DOMAIN-SUFFIX,wetvinfo.com'
|
||||
]
|
||||
};
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.ALL = [
|
||||
$4GTV,
|
||||
ABEMA_TV, AMAZON_PRIME_VIDEO, ALL4, APPLE_TV, APPLE_MUSIC_TV,
|
||||
BAHAMUT, BBC, BILIBILI_INTL,
|
||||
DAZN, DEEZER, DISNEY_PLUS, DISCOVERY_PLUS, DMM,
|
||||
ENCORE_TVB,
|
||||
FOX_NOW, FOX_PLUS,
|
||||
HBO, HBO_ASIA, HIMALAYA_FM, HULU, HWTV,
|
||||
IQIYI_GLOBAL, ITV,
|
||||
JOOX,
|
||||
KKBOX,
|
||||
KKTV,
|
||||
LINE_TV, LITV,
|
||||
MAX, MY5, MYTV_SUPER,
|
||||
NETFLIX, NAVER_TV, NICONICO, NOW_E,
|
||||
OVERCAST_FM,
|
||||
PARAMOUNT, PBS, PEACOCK, PANDORA, PORNHUB,
|
||||
SOUNDCLOUD, SPOTIFY,
|
||||
TAIWAN_GOOD, TIDAL, TIKTOK, TVB_ANYWHERE, TWITCH,
|
||||
VIUTV,
|
||||
WETV,
|
||||
YOUTUBE, YOUTUBE_MUSIC,
|
||||
SHOWTIME
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.NORTH_AMERICA = [
|
||||
FOX_NOW,
|
||||
FOX_PLUS,
|
||||
HULU, // Hulu US
|
||||
// HBO,
|
||||
// www.nfl.com
|
||||
// epix.com
|
||||
// starz.com
|
||||
// www.philo.com
|
||||
// https://www.shudder.com/
|
||||
// https://www.britbox.com
|
||||
// crackle.com
|
||||
// www.cwtv.com
|
||||
// www.aetv.com
|
||||
// https://www.nba.com/watch/
|
||||
// fubo.tv
|
||||
// mola.tv
|
||||
// https://setantasports.com/
|
||||
// tubitv.com
|
||||
// SlingTV
|
||||
// PlutoTV
|
||||
// AcornTV
|
||||
SHOWTIME,
|
||||
ENCORE_TVB,
|
||||
// Funimation
|
||||
DISCOVERY_PLUS,
|
||||
PARAMOUNT,
|
||||
PEACOCK
|
||||
// Popcornflix
|
||||
// Crunchyroll
|
||||
// ATTNOW
|
||||
// KBSAmerican
|
||||
// KOCOWA
|
||||
// MathsSpot
|
||||
// CBCGem
|
||||
// Crave
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.EU = [
|
||||
// RakutenTV
|
||||
// Funimation
|
||||
// SkyShowTime
|
||||
// HBO,
|
||||
// MathSpot
|
||||
// SkyGo
|
||||
// BritBox
|
||||
ITV, // ITVHUB
|
||||
// BBC Channel 4
|
||||
// BBC Channel 5
|
||||
BBC
|
||||
// Discovery+ UK discoveryplus.co.uk
|
||||
// Salto
|
||||
// CanalPlus
|
||||
// Molotov
|
||||
// Joyn
|
||||
// SKY_DE
|
||||
// ZDF
|
||||
// NLZIET
|
||||
// videoland
|
||||
// NPO_START_PLUS
|
||||
// HBO_Spain
|
||||
// Pantaya
|
||||
// RaiPlay
|
||||
// MegogoTV
|
||||
// Amediateka
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.HK = [
|
||||
NOW_E,
|
||||
VIUTV,
|
||||
MYTV_SUPER,
|
||||
HBO_ASIA,
|
||||
BILIBILI_INTL
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.TW = [
|
||||
KKTV,
|
||||
LITV,
|
||||
// MyVideo
|
||||
$4GTV,
|
||||
LINE_TV,
|
||||
// HamiVideo
|
||||
// CatchPlay
|
||||
HBO_ASIA,
|
||||
BAHAMUT,
|
||||
// elevensportstw
|
||||
BILIBILI_INTL
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.JP = [
|
||||
DMM,
|
||||
// DMMTV
|
||||
ABEMA_TV,
|
||||
NICONICO
|
||||
// music.jp
|
||||
// Telasa
|
||||
// Paravi
|
||||
// unext
|
||||
// HuluJP
|
||||
// TVer
|
||||
// GYAO!
|
||||
// wowow
|
||||
// VideoMarket
|
||||
// FOD (Fuji TV)
|
||||
// Radiko
|
||||
// Karaoke@DAM
|
||||
// J:COM
|
||||
// Kancolle Japan
|
||||
// Pretty Derby Japan
|
||||
// Konosuba Fantastic Days
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.AU = [
|
||||
// Stan
|
||||
// Binge
|
||||
// 7plus
|
||||
// Channel9
|
||||
// Channel10
|
||||
// ABCiView
|
||||
// OptusSports
|
||||
// SBSonDemand
|
||||
// NeonTV
|
||||
// SKyGONZ
|
||||
// ThreeNow
|
||||
// MaoriTV
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.KR = [
|
||||
// WAVEE
|
||||
// Tving
|
||||
// CoupangPlay
|
||||
NAVER_TV
|
||||
// Afreeca
|
||||
// KBSDomestic
|
||||
// KOCOWA
|
||||
];
|
||||
|
||||
/** @type {StreamService[]} */
|
||||
module.exports.SOUTH_EAST_ASIA = [
|
||||
// HBO
|
||||
// B-Global SouthEastAsia
|
||||
// MeWatch SG
|
||||
// AISPlay Thailand
|
||||
// B-Global Thailand
|
||||
// B-Global Indonesia
|
||||
// K_Plus VN
|
||||
// TV360 VN
|
||||
// B-Global VN
|
||||
];
|
||||
Loading…
x
Reference in New Issue
Block a user