forked from doms/iptv
e
switch to ffprobe for health checks
This commit is contained in:
parent
ec9a35b657
commit
00000d943e
3 changed files with 33 additions and 64 deletions
5
.github/workflows/health.yml
vendored
5
.github/workflows/health.yml
vendored
|
|
@ -14,6 +14,11 @@ 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
|
||||
|
||||
|
|
|
|||
|
|
@ -28,12 +28,10 @@ http://fl1.moveonjoy.com/Aspire/index.m3u8
|
|||
http://fl1.moveonjoy.com/BBC_AMERICA/index.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="10" tvg-id="BBC.News.(North.America).HD.us2" tvg-name="BBC World News" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89542_dark_360w_270h.png" group-title="TV",BBC World News
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/1723
|
||||
http://fl1.moveonjoy.com/BBC_WORLD_NEWS/index.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="11" tvg-id="BET.HD.us2" tvg-name="BET" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10051_dark_360w_270h.png" group-title="TV",BET
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/2071
|
||||
http://mytvstream.net:8080/live/30550113/30550113/13702.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="12" tvg-id="Big.Ten.Network.HD.us2" tvg-name="Big Ten Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s56783_dark_360w_270h.png" group-title="TV",Big Ten Network
|
||||
http://23.237.104.106:8080/USA_BTN/index.m3u8
|
||||
|
|
@ -150,8 +148,7 @@ http://mytvstream.net:8080/live/30550113/30550113/66795.m3u8
|
|||
http://mytvstream.net:8080/live/30550113/30550113/58827.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="50" tvg-id="FanDuel.Sports.Network.Ohio.(Cleveland).HDTV.us" tvg-name="FDSN Ohio" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49691_dark_360w_270h.png" group-title="TV",FDSN Ohio
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222126
|
||||
http://mytvstream.net:8080/live/30550113/30550113/17752.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="51" tvg-id="FanDuel.Sports.Network.Oklahoma.24/7.HDTV.(Tulsa).us" tvg-name="FDSN Oklahoma" tvg-logo="https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png" group-title="TV",FDSN Oklahoma
|
||||
http://mytvstream.net:8080/live/30550113/30550113/20934.m3u8
|
||||
|
|
@ -160,16 +157,13 @@ http://mytvstream.net:8080/live/30550113/30550113/20934.m3u8
|
|||
http://mytvstream.net:8080/live/30550113/30550113/221151.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="53" tvg-id="FanDuel.Sports.Network.Southeast.HDTV.(Mont./Birm./Dothan/Mobile.AL).us" tvg-name="FDSN Southeast" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s20789_dark_360w_270h.png" group-title="TV",FDSN Southeast
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222130
|
||||
http://mytvstream.net:8080/live/30550113/30550113/2213.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="54" tvg-id="FanDuel.Sports.Network.Southwest.HDTV.24/7.(Main).us" tvg-name="FDSN Southwest" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59629_dark_360w_270h.png" group-title="TV",FDSN Southwest
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/220452
|
||||
http://mytvstream.net:8080/live/30550113/30550113/21843.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="55" tvg-id="FanDuel.Sports.Network.Sun.South.24/7.HDTV.(South.Marlins,.Rays,.Heat).us" tvg-name="FDSN Sun" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61084_dark_360w_270h.png" group-title="TV",FDSN Sun
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222132
|
||||
http://mytvstream.net:8080/live/30550113/30550113/104917.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="56" tvg-id="FanDuel.Sports.Network.West.HDTV.us" tvg-name="FDSN West" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59627_dark_360w_270h.png" group-title="TV",FDSN West
|
||||
http://mytvstream.net:8080/live/30550113/30550113/20932.m3u8
|
||||
|
|
@ -217,8 +211,7 @@ https://fl1.moveonjoy.com/FXX/index.m3u8
|
|||
http://fl1.moveonjoy.com/FYI/index.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="71" tvg-id="Game.Show.Network.HD.us2" tvg-name="Game Show Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" group-title="TV",Game Show Network
|
||||
#EXTVLCOPT:http-user-agent=curl/8.5.0
|
||||
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/1948
|
||||
http://mytvstream.net:8080/live/30550113/30550113/120633.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="72" tvg-id="get.us2" tvg-name="getTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82563_dark_360w_270h.png" group-title="TV",getTV
|
||||
http://fl1.moveonjoy.com/GET_TV/index.m3u8
|
||||
|
|
|
|||
71
health.sh
71
health.sh
|
|
@ -1,8 +1,6 @@
|
|||
#!/bin/bash
|
||||
base_file="./M3U8/base.m3u8"
|
||||
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
|
||||
MAX_JOBS=10
|
||||
RETRY_COUNT=3
|
||||
README="./readme.md"
|
||||
STATUSLOG=$(mktemp)
|
||||
|
||||
|
|
@ -15,66 +13,39 @@ get_status() {
|
|||
|
||||
[[ "$url" != http* ]] && return
|
||||
|
||||
printf '[%d/%d] Checking %s\n' "$((index + 1))" "$total" "$url"
|
||||
printf '[%d/%d] Checking "%s"\n' "$((index + 1))" "$total" "$url"
|
||||
|
||||
for attempt in $(seq 1 "$RETRY_COUNT"); do
|
||||
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 30 \
|
||||
-w "%{http_code}" \
|
||||
"$url" 2>&1
|
||||
)
|
||||
output=$(
|
||||
ffprobe \
|
||||
-v error \
|
||||
-rw_timeout 15000000 \
|
||||
-timeout 15000000 \
|
||||
-select_streams v:0 \
|
||||
-show_entries stream=codec_name \
|
||||
-of csv=p=0 \
|
||||
-headers "User-Agent: curl/8.5.0" \
|
||||
"$url" 2>&1
|
||||
)
|
||||
|
||||
[[ "$response" =~ ^[0-9]+$ ]] && break
|
||||
rc=$?
|
||||
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [[ ! "$response" =~ ^[0-9]+$ ]]; then
|
||||
if [[ "$response" == *"timed out"* ]]; then
|
||||
echo "| $channel | Connection timed out | \`$url\` |" >>"$STATUSLOG"
|
||||
else
|
||||
echo "| $channel | Curl error | \`$url\` |" >>"$STATUSLOG"
|
||||
fi
|
||||
|
||||
echo "FAIL" >>"$STATUSLOG"
|
||||
|
||||
return
|
||||
fi
|
||||
|
||||
status_code="$response"
|
||||
|
||||
case "$status_code" in
|
||||
2* | 3*)
|
||||
if ((rc == 0)); then
|
||||
echo "PASS" >>"$STATUSLOG"
|
||||
;;
|
||||
else
|
||||
if [[ "$output" =~ Server\ returned\ ([0-9]{3})\ (.+) ]]; then
|
||||
code="${BASH_REMATCH[1]}"
|
||||
|
||||
4* | 5*)
|
||||
echo "| $channel | HTTP Error ($status_code) | \`$url\` |" >>"$STATUSLOG"
|
||||
echo "FAIL" >>"$STATUSLOG"
|
||||
;;
|
||||
|
||||
*)
|
||||
if [[ "$status_code" == "000" ]]; then
|
||||
echo "| $channel | Connection timed out (000) | \`$url\` |" >>"$STATUSLOG"
|
||||
echo "| $channel | HTTP Error ($code) | \`$url\` |" >>"$STATUSLOG"
|
||||
else
|
||||
echo "| $channel | Unknown status ($status_code) | \`$url\` |" >>"$STATUSLOG"
|
||||
echo "| $channel | HTTP Error (000) | \`$url\` |" >>"$STATUSLOG"
|
||||
fi
|
||||
|
||||
echo "FAIL" >>"$STATUSLOG"
|
||||
;;
|
||||
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
check_links() {
|
||||
echo "Checking links from: $base_file"
|
||||
echo -e "Checking links from: $base_file\n"
|
||||
total_urls=$(grep -cE '^https?://' "$base_file")
|
||||
channel_num=0
|
||||
name=""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue