mirror of
https://github.com/doms9/iptv.git
synced 2026-04-24 20:16:59 +02:00
Compare commits
No commits in common. "fb644af5d050e9c4fa4ed7c3107b7a5b9fda6e62" and "a74d9e3065507d45538396c619c243fa9939250a" have entirely different histories.
fb644af5d0
...
a74d9e3065
8 changed files with 106624 additions and 107784 deletions
5
.github/workflows/health.yml
vendored
5
.github/workflows/health.yml
vendored
|
|
@ -14,6 +14,11 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Install FFmpeg
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install ffmpeg -y
|
||||||
|
|
||||||
- name: Run health.sh
|
- name: Run health.sh
|
||||||
run: bash health.sh
|
run: bash health.sh
|
||||||
|
|
||||||
|
|
|
||||||
2514
M3U8/TV.m3u8
2514
M3U8/TV.m3u8
File diff suppressed because it is too large
Load diff
209236
M3U8/TV.xml
209236
M3U8/TV.xml
File diff suppressed because one or more lines are too long
|
|
@ -301,7 +301,7 @@ http://89.105.221.127/MSNBC/index.m3u8?token=test
|
||||||
http://23.237.104.106:8080/USA_MTV/index.m3u8
|
http://23.237.104.106:8080/USA_MTV/index.m3u8
|
||||||
|
|
||||||
#EXTINF:-1 tvg-chno="101" tvg-id="National.Geographic.HD.us2" tvg-name="National Geographic" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49438_dark_360w_270h.png" group-title="TV",National Geographic
|
#EXTINF:-1 tvg-chno="101" tvg-id="National.Geographic.HD.us2" tvg-name="National Geographic" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49438_dark_360w_270h.png" group-title="TV",National Geographic
|
||||||
http://89.105.221.127/NationalGeographic/index.m3u8?token=test
|
http://23.237.104.106:8080/USA_NAT_GEO/index.m3u8
|
||||||
|
|
||||||
#EXTINF:-1 tvg-chno="102" tvg-id="NBA.TV.HD.us2" tvg-name="NBA TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png" group-title="TV",NBA TV
|
#EXTINF:-1 tvg-chno="102" tvg-id="NBA.TV.HD.us2" tvg-name="NBA TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png" group-title="TV",NBA TV
|
||||||
http://212.102.60.231/NBA_TV/index.m3u8
|
http://212.102.60.231/NBA_TV/index.m3u8
|
||||||
|
|
|
||||||
2512
M3U8/events.m3u8
2512
M3U8/events.m3u8
File diff suppressed because it is too large
Load diff
|
|
@ -75,11 +75,11 @@ async def main() -> None:
|
||||||
asyncio.create_task(istreameast.scrape()),
|
asyncio.create_task(istreameast.scrape()),
|
||||||
# asyncio.create_task(listapreta.scrape()),
|
# asyncio.create_task(listapreta.scrape()),
|
||||||
asyncio.create_task(mainportal.scrape()),
|
asyncio.create_task(mainportal.scrape()),
|
||||||
asyncio.create_task(ovogoal.scrape()),
|
# asyncio.create_task(ovogoal.scrape()),
|
||||||
asyncio.create_task(pawa.scrape()),
|
asyncio.create_task(pawa.scrape()),
|
||||||
asyncio.create_task(shark.scrape()),
|
asyncio.create_task(shark.scrape()),
|
||||||
asyncio.create_task(streamcenter.scrape()),
|
asyncio.create_task(streamcenter.scrape()),
|
||||||
asyncio.create_task(streamhub.scrape()),
|
# asyncio.create_task(streamhub.scrape()),
|
||||||
asyncio.create_task(streamsgate.scrape()),
|
asyncio.create_task(streamsgate.scrape()),
|
||||||
asyncio.create_task(streamtpnew.scrape()),
|
asyncio.create_task(streamtpnew.scrape()),
|
||||||
asyncio.create_task(totalsportek.scrape()),
|
asyncio.create_task(totalsportek.scrape()),
|
||||||
|
|
|
||||||
66
health.sh
66
health.sh
|
|
@ -8,58 +8,45 @@ STATUSLOG=$(mktemp)
|
||||||
get_status() {
|
get_status() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
local channel="$2"
|
local channel="$2"
|
||||||
local index="$3"
|
|
||||||
local total="$4"
|
|
||||||
local attempt response status_code
|
local attempt response status_code
|
||||||
|
|
||||||
[[ "$url" != http* ]] && return
|
[[ "$url" != http* ]] && return
|
||||||
|
|
||||||
printf -v chnl_info "%s (%s)\n" "$channel" "$url"
|
output=$(
|
||||||
|
timeout 10s ffprobe \
|
||||||
response=$(
|
-v error \
|
||||||
curl -skL \
|
-rw_timeout 15000000 \
|
||||||
-A "$UA" \
|
-timeout 15000000 \
|
||||||
-H "Accept: */*" \
|
-select_streams v:0 \
|
||||||
-H "Accept-Language: en-US,en;q=0.9" \
|
-show_entries stream=codec_name \
|
||||||
-H "Connection: keep-alive" \
|
-of csv=p=0 \
|
||||||
-o /dev/null \
|
-headers "User-Agent: $UA" \
|
||||||
--compressed \
|
-analyzeduration 5M \
|
||||||
--max-time 10 \
|
-probesize 5M \
|
||||||
-w "%{http_code}" \
|
-http_persistent 0 \
|
||||||
"$url" 2>&1
|
"$url" 2>&1
|
||||||
)
|
)
|
||||||
|
|
||||||
case "$response" in
|
rc=$?
|
||||||
|
|
||||||
2* | 3*)
|
if ((rc == 0)); then
|
||||||
printf '[%d/%d] ✔️ %s' "$((index + 1))" "$total" "$chnl_info"
|
printf '✔️ %s (%s)\n' "$channel" "$url"
|
||||||
|
|
||||||
echo "PASS" >>"$STATUSLOG"
|
echo "PASS" >>"$STATUSLOG"
|
||||||
;;
|
else
|
||||||
|
printf '❌ %s (%s)\n' "$channel" "$url"
|
||||||
|
|
||||||
4* | 5*)
|
if [[ "$output" =~ Server\ returned\ ([0-9]{3})\ (.+) ]]; then
|
||||||
printf '[%d/%d] ❌ %s' "$((index + 1))" "$total" "$chnl_info"
|
code="${BASH_REMATCH[1]}"
|
||||||
|
echo "| $channel | HTTP Error ($code) | \`$url\` |" >>"$STATUSLOG"
|
||||||
echo "| $channel | HTTP Error ($response) | \`$url\` |" >>"$STATUSLOG"
|
elif ((rc == 124)); then
|
||||||
|
|
||||||
echo "FAIL" >>"$STATUSLOG"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
printf '[%d/%d] ❌ %s' "$((index + 1))" "$total" "$chnl_info"
|
|
||||||
|
|
||||||
if [[ "$response" == "000" ]]; then
|
|
||||||
echo "| $channel | HTTP Timeout (408) | \`$url\` |" >>"$STATUSLOG"
|
echo "| $channel | HTTP Timeout (408) | \`$url\` |" >>"$STATUSLOG"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "| $channel | Unknown status ($status_code) | \`$url\` |" >>"$STATUSLOG"
|
echo "| $channel | HTTP Error (000) | \`$url\` |" >>"$STATUSLOG"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "FAIL" >>"$STATUSLOG"
|
echo "FAIL" >>"$STATUSLOG"
|
||||||
;;
|
fi
|
||||||
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_links() {
|
check_links() {
|
||||||
|
|
@ -67,7 +54,7 @@ check_links() {
|
||||||
channel_num=0
|
channel_num=0
|
||||||
name=""
|
name=""
|
||||||
|
|
||||||
printf "Checking %d links from %s\n" "$total_urls" "$base_file"
|
echo -e "Checking $total_urls links from: $base_file\n"
|
||||||
|
|
||||||
echo "| Channel | Error (Code) | Link |" >"$STATUSLOG"
|
echo "| Channel | Error (Code) | Link |" >"$STATUSLOG"
|
||||||
echo "| ------- | ------------ | ---- |" >>"$STATUSLOG"
|
echo "| ------- | ------------ | ---- |" >>"$STATUSLOG"
|
||||||
|
|
@ -77,14 +64,11 @@ check_links() {
|
||||||
|
|
||||||
if [[ "$line" == \#EXTINF* ]]; then
|
if [[ "$line" == \#EXTINF* ]]; then
|
||||||
name=$(echo "$line" | sed -n 's/.*tvg-name="\([^"]*\)".*/\1/p')
|
name=$(echo "$line" | sed -n 's/.*tvg-name="\([^"]*\)".*/\1/p')
|
||||||
|
|
||||||
[[ -z "$name" ]] && name="Channel $channel_num"
|
[[ -z "$name" ]] && name="Channel $channel_num"
|
||||||
|
|
||||||
elif [[ "$line" =~ ^https?:// ]]; then
|
elif [[ "$line" =~ ^https?:// ]]; then
|
||||||
while (($(jobs -rp | wc -l) >= MAX_JOBS)); do sleep 0.2; done
|
while (($(jobs -rp | wc -l) >= MAX_JOBS)); do sleep 0.2; done
|
||||||
|
get_status "$line" "$name" &
|
||||||
get_status "$line" "$name" "$channel_num" "$total_urls" &
|
|
||||||
|
|
||||||
((channel_num++))
|
((channel_num++))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
69
readme.md
69
readme.md
|
|
@ -1,79 +1,16 @@
|
||||||
## Base Log @ 2026-04-13 15:53 UTC
|
## Base Log @ 2026-04-12 09:10 UTC
|
||||||
|
|
||||||
### ✅ Working Streams: 90<br>❌ Dead Streams: 71
|
### ✅ Working Streams: 153<br>❌ Dead Streams: 8
|
||||||
|
|
||||||
| Channel | Error (Code) | Link |
|
| Channel | Error (Code) | Link |
|
||||||
| ------- | ------------ | ---- |
|
| ------- | ------------ | ---- |
|
||||||
| Aspire | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/150605.ts` |
|
|
||||||
| C-SPAN | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/14804.ts` |
|
|
||||||
| CBS Sports Network | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/267357.ts` |
|
| CBS Sports Network | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/267357.ts` |
|
||||||
| CW | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/171820.ts` |
|
|
||||||
| Comedy TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/199482.ts` |
|
|
||||||
| Cozi TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8392.ts` |
|
|
||||||
| Discovery Family Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2300.ts` |
|
|
||||||
| Discovery Life | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/201208.ts` |
|
|
||||||
| Discovery Science | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2301.ts` |
|
|
||||||
| ESPN News | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2312.ts` |
|
|
||||||
| ESPN2 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/41918.ts` |
|
|
||||||
| FDSN Detroit | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6463.ts` |
|
|
||||||
| FDSN Florida | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296662.ts` |
|
| FDSN Florida | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296662.ts` |
|
||||||
| FDSN Midwest | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/58557.ts` |
|
|
||||||
| FDSN Ohio | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296675.ts` |
|
|
||||||
| FDSN Oklahoma | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6452.ts` |
|
|
||||||
| FDSN SoCal | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296681.ts` |
|
|
||||||
| FDSN Southeast | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/82301.ts` |
|
|
||||||
| FDSN Southwest | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296685.ts` |
|
|
||||||
| FDSN Sun | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2325.ts` |
|
|
||||||
| FDSN West | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3367.ts` |
|
|
||||||
| FDSN Wisconsin | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/295668.ts` |
|
| FDSN Wisconsin | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/295668.ts` |
|
||||||
| FX Movie Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/39873.ts` |
|
| FX Movie Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/39873.ts` |
|
||||||
| FYI TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/9234.ts` |
|
| FYI TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/9234.ts` |
|
||||||
| Fox Business | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2316.ts` |
|
|
||||||
| Fox News | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1611.ts` |
|
|
||||||
| Fox Sports 1 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/756.ts` |
|
|
||||||
| Fox Sports 2 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/757.ts` |
|
|
||||||
| Freeform TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2329.ts` |
|
|
||||||
| Game Show Network | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/466.ts` |
|
|
||||||
| Golf Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5845.ts` |
|
|
||||||
| Grit TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/15086.ts` |
|
|
||||||
| HBO Family | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/760.ts` |
|
|
||||||
| Hallmark Family | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/304609.ts` |
|
|
||||||
| Hallmark Mystery | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3388.ts` |
|
|
||||||
| History Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/761.ts` |
|
|
||||||
| ION TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/147661.ts` |
|
|
||||||
| Investigation Discovery | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8557.ts` |
|
|
||||||
| Lifetime | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/4667.ts` |
|
|
||||||
| Marquee Sports Network | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/150609.ts` |
|
|
||||||
| MotorTrend TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/272264.ts` |
|
|
||||||
| NBC Sports Bay Area | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/45785.ts` |
|
|
||||||
| NBC Sports Boston | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/35132.ts` |
|
|
||||||
| NBC Sports California | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/16116.ts` |
|
|
||||||
| NBC Sports Philadelphia | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/35472.ts` |
|
|
||||||
| NFL RedZone | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2369.ts` |
|
|
||||||
| NewsNation | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6296.ts` |
|
| NewsNation | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6296.ts` |
|
||||||
| Nick Jr | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/14835.ts` |
|
| TV Land | HTTP Timeout (408) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2364.ts` |
|
||||||
| Ovation | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/194336.ts` |
|
|
||||||
| Pop TV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/305494.ts` |
|
|
||||||
| Premier Sports 1 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1097.ts` |
|
|
||||||
| Premier Sports 2 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/4723.ts` |
|
|
||||||
| Showtime Extreme | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/12036.ts` |
|
|
||||||
| Sky Sports News | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/304775.ts` |
|
|
||||||
| Smithsonian Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8585.ts` |
|
|
||||||
| Sony Movie Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5831.ts` |
|
|
||||||
| SportsNet Pittsburgh | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/59945.ts` |
|
|
||||||
| Sportsman Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/30847.ts` |
|
|
||||||
| Sportsnet 360 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3377.ts` |
|
|
||||||
| Sportsnet East | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1720.ts` |
|
|
||||||
| Sportsnet One | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3378.ts` |
|
|
||||||
| TLC | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2362.ts` |
|
|
||||||
| TSN1 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/770.ts` |
|
|
||||||
| TSN2 | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/771.ts` |
|
|
||||||
| TV Land | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2364.ts` |
|
|
||||||
| TV One | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/13010.ts` |
|
|
||||||
| The Weather Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2361.ts` |
|
|
||||||
| USA East | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3390.ts` |
|
|
||||||
| Willow Cricket | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296763.ts` |
|
|
||||||
| YES Network | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5519.ts` |
|
|
||||||
| getTV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/194187.ts` |
|
| getTV | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/194187.ts` |
|
||||||
---
|
---
|
||||||
#### Base Channels URL
|
#### Base Channels URL
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue