Compare commits

...

37 commits

Author SHA1 Message Date
GitHub Actions Bot
fb644af5d0 update M3U8 2026-04-13 12:01:04 -04:00
GitHub Actions Bot
a29c5528a3 health log 2026-04-13 15:53:42 +00:00
GitHub Actions Bot
24c5bc3e3d update M3U8 2026-04-13 11:01:19 -04:00
GitHub Actions Bot
288cc67e4b update M3U8 2026-04-13 10:00:36 -04:00
GitHub Actions Bot
c46c40e074 update M3U8 2026-04-13 09:00:46 -04:00
GitHub Actions Bot
72bde081ea update M3U8 2026-04-13 08:04:07 -04:00
GitHub Actions Bot
565d80da79 update EPG 2026-04-13 11:54:44 +00:00
GitHub Actions Bot
f2b97ed187 health log 2026-04-13 10:12:24 +00:00
GitHub Actions Bot
9648a86f3c update EPG 2026-04-13 05:30:23 +00:00
GitHub Actions Bot
6697a95be8 health log 2026-04-13 05:27:14 +00:00
doms9
00000d9ab6 e
- switch back to curl for health checks
2026-04-12 23:47:59 -04:00
GitHub Actions Bot
6e2908535f update M3U8 2026-04-12 23:31:14 -04:00
GitHub Actions Bot
987e59a385 update M3U8 2026-04-12 23:00:44 -04:00
GitHub Actions Bot
9a13f85c54 update M3U8 2026-04-12 22:31:11 -04:00
GitHub Actions Bot
82bb69a10e update M3U8 2026-04-12 22:00:44 -04:00
GitHub Actions Bot
c6c93b7e16 update M3U8 2026-04-12 21:31:11 -04:00
GitHub Actions Bot
87703a8220 update M3U8 2026-04-12 21:01:34 -04:00
GitHub Actions Bot
2605567099 update M3U8 2026-04-12 20:31:49 -04:00
GitHub Actions Bot
40dc6ee21d update M3U8 2026-04-12 20:01:14 -04:00
GitHub Actions Bot
ea21379746 update M3U8 2026-04-12 19:31:07 -04:00
GitHub Actions Bot
e195428f0b update M3U8 2026-04-12 19:03:12 -04:00
GitHub Actions Bot
d31f445f5f update M3U8 2026-04-12 18:31:22 -04:00
GitHub Actions Bot
05388ddc16 update M3U8 2026-04-12 18:01:29 -04:00
GitHub Actions Bot
edcab2af93 update M3U8 2026-04-12 17:31:22 -04:00
GitHub Actions Bot
8bfe58b25d health log 2026-04-12 17:14:09 -04:00
GitHub Actions Bot
bc2d28833d update M3U8 2026-04-12 17:00:58 -04:00
GitHub Actions Bot
44bf4d60f5 health log 2026-04-12 21:00:46 +00:00
GitHub Actions Bot
f74a1871a4 update M3U8 2026-04-12 16:31:18 -04:00
GitHub Actions Bot
7d4766a3dc update M3U8 2026-04-12 16:02:12 -04:00
GitHub Actions Bot
0073400e35 update M3U8 2026-04-12 15:31:40 -04:00
GitHub Actions Bot
459960a48b update EPG 2026-04-12 19:27:49 +00:00
GitHub Actions Bot
707e9650f2 update M3U8 2026-04-12 15:01:49 -04:00
GitHub Actions Bot
64efdd513f update M3U8 2026-04-12 14:31:40 -04:00
GitHub Actions Bot
ea134e5fc6 update M3U8 2026-04-12 14:02:21 -04:00
GitHub Actions Bot
4c2178dfb9 update M3U8 2026-04-12 13:35:16 -04:00
GitHub Actions Bot
d7bbf4997f update M3U8 2026-04-12 13:01:57 -04:00
GitHub Actions Bot
e886d63d1a health log 2026-04-12 13:00:06 -04:00
8 changed files with 107268 additions and 106108 deletions

View file

@ -14,11 +14,6 @@ jobs:
with:
fetch-depth: 0
- name: Install FFmpeg
run: |
sudo apt-get update
sudo apt-get install ffmpeg -y
- name: Run health.sh
run: bash health.sh

File diff suppressed because it is too large Load diff

208012
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -301,7 +301,7 @@ http://89.105.221.127/MSNBC/index.m3u8?token=test
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
http://23.237.104.106:8080/USA_NAT_GEO/index.m3u8
http://89.105.221.127/NationalGeographic/index.m3u8?token=test
#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

File diff suppressed because it is too large Load diff

View file

@ -75,11 +75,11 @@ async def main() -> None:
asyncio.create_task(istreameast.scrape()),
# asyncio.create_task(listapreta.scrape()),
asyncio.create_task(mainportal.scrape()),
# asyncio.create_task(ovogoal.scrape()),
asyncio.create_task(ovogoal.scrape()),
asyncio.create_task(pawa.scrape()),
asyncio.create_task(shark.scrape()),
asyncio.create_task(streamcenter.scrape()),
# asyncio.create_task(streamhub.scrape()),
asyncio.create_task(streamhub.scrape()),
asyncio.create_task(streamsgate.scrape()),
asyncio.create_task(streamtpnew.scrape()),
asyncio.create_task(totalsportek.scrape()),

View file

@ -8,45 +8,58 @@ STATUSLOG=$(mktemp)
get_status() {
local url="$1"
local channel="$2"
local index="$3"
local total="$4"
local attempt response status_code
[[ "$url" != http* ]] && return
output=$(
timeout 10s ffprobe \
-v error \
-rw_timeout 15000000 \
-timeout 15000000 \
-select_streams v:0 \
-show_entries stream=codec_name \
-of csv=p=0 \
-headers "User-Agent: $UA" \
-analyzeduration 5M \
-probesize 5M \
-http_persistent 0 \
printf -v chnl_info "%s (%s)\n" "$channel" "$url"
response=$(
curl -skL \
-A "$UA" \
-H "Accept: */*" \
-H "Accept-Language: en-US,en;q=0.9" \
-H "Connection: keep-alive" \
-o /dev/null \
--compressed \
--max-time 10 \
-w "%{http_code}" \
"$url" 2>&1
)
rc=$?
case "$response" in
if ((rc == 0)); then
printf '✔️ %s (%s)\n' "$channel" "$url"
2* | 3*)
printf '[%d/%d] ✔️ %s' "$((index + 1))" "$total" "$chnl_info"
echo "PASS" >>"$STATUSLOG"
else
printf '❌ %s (%s)\n' "$channel" "$url"
;;
if [[ "$output" =~ Server\ returned\ ([0-9]{3})\ (.+) ]]; then
code="${BASH_REMATCH[1]}"
echo "| $channel | HTTP Error ($code) | \`$url\` |" >>"$STATUSLOG"
elif ((rc == 124)); then
4* | 5*)
printf '[%d/%d] ❌ %s' "$((index + 1))" "$total" "$chnl_info"
echo "| $channel | HTTP Error ($response) | \`$url\` |" >>"$STATUSLOG"
echo "FAIL" >>"$STATUSLOG"
;;
*)
printf '[%d/%d] ❌ %s' "$((index + 1))" "$total" "$chnl_info"
if [[ "$response" == "000" ]]; then
echo "| $channel | HTTP Timeout (408) | \`$url\` |" >>"$STATUSLOG"
else
echo "| $channel | HTTP Error (000) | \`$url\` |" >>"$STATUSLOG"
echo "| $channel | Unknown status ($status_code) | \`$url\` |" >>"$STATUSLOG"
fi
echo "FAIL" >>"$STATUSLOG"
fi
;;
esac
}
check_links() {
@ -54,7 +67,7 @@ check_links() {
channel_num=0
name=""
echo -e "Checking $total_urls links from: $base_file\n"
printf "Checking %d links from %s\n" "$total_urls" "$base_file"
echo "| Channel | Error (Code) | Link |" >"$STATUSLOG"
echo "| ------- | ------------ | ---- |" >>"$STATUSLOG"
@ -64,11 +77,14 @@ check_links() {
if [[ "$line" == \#EXTINF* ]]; then
name=$(echo "$line" | sed -n 's/.*tvg-name="\([^"]*\)".*/\1/p')
[[ -z "$name" ]] && name="Channel $channel_num"
elif [[ "$line" =~ ^https?:// ]]; then
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++))
fi

View file

@ -1,16 +1,79 @@
## Base Log @ 2026-04-12 09:10 UTC
## Base Log @ 2026-04-13 15:53 UTC
### ✅ Working Streams: 153<br>❌ Dead Streams: 8
### ✅ Working Streams: 90<br>❌ Dead Streams: 71
| 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` |
| 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 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` |
| 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` |
| 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` |
| TV Land | HTTP Timeout (408) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2364.ts` |
| Nick Jr | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/14835.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` |
---
#### Base Channels URL