Feat: more providers

This commit is contained in:
coolnsx
2024-06-06 18:51:33 +05:30
parent f60aac356c
commit b4e936f8b9

35
dra-cla
View File

@@ -3,7 +3,7 @@
#shellcheck disable=SC2154 #shellcheck disable=SC2154
# most important variables. # most important variables.
VERSION="3.0.2" VERSION="3.0.3"
CHANNEL="main" CHANNEL="main"
base_url="https://streamcool.pro" base_url="https://streamcool.pro"
logdir="${XDG_CACHE_HOME:-$HOME/.cache}" logdir="${XDG_CACHE_HOME:-$HOME/.cache}"
@@ -129,7 +129,12 @@ open_episode() {
tput clear tput clear
log "Fetching $title Episode $episode.." log "Fetching $title Episode $episode.."
[ -z "$dpage_link" ] && dpage_link=$(curl -s -A "$agent" "$base_url/videos/${id}${episode}" | sed -nE 's_^[[:space:]]*<iframe src="([^"]*)".*_https:\1_p') [ -z "$dpage_link" ] && dpage_link=$(curl -s -A "$agent" "$base_url/videos/${id}${episode}" | sed -nE 's_^[[:space:]]*<iframe src="([^"]*)".*_https:\1_p')
providers_link="$(curl -s "$dpage_link" -A "$agent" | sed -nE 's|.*data-provider="([^"]*)" data-video="([^"]*)".*|\1>\2|p')"
for provider in streamwish vidhide main; do
log "Fetching $provider links.."
get_video_url get_video_url
[ -n "$video_link" ] && break
done
if grep -q "$id" "$logfile"; then if grep -q "$id" "$logfile"; then
sed -E "s/^${id}.*/${id}$((episode + 1))/" "$logfile" >"${logfile}.new" sed -E "s/^${id}.*/${id}$((episode + 1))/" "$logfile" >"${logfile}.new"
else else
@@ -142,11 +147,23 @@ open_episode() {
#media Player #media Player
case "$player_function" in case "$player_function" in
mpv*) [ -z "$nohup" ] && $player_function --force-media-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 || ( $nohup $player_function --force-media-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 & );; mpv*)
if [ -z "$nohup" ]; then
$player_function --force-media-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1
else
$nohup "$player_function" --force-media-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 &
fi
;;
android_mpv) am start --user 0 -a android.intent.action.VIEW -d "$video_link" -n is.xyz.mpv/.MPVActivity >/dev/null 2>&1 ;; android_mpv) am start --user 0 -a android.intent.action.VIEW -d "$video_link" -n is.xyz.mpv/.MPVActivity >/dev/null 2>&1 ;;
vlc*) [ -z "$nohup" ] && $player_function --play-and-exit --meta-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 || ( $nohup $player_function --play-and-exit --meta-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 & );; vlc*)
if [ -z "$nohup" ]; then
$player_function --play-and-exit --meta-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1
else
$nohup "$player_function" --play-and-exit --meta-title="${title} Episode ${episode}" "$video_link" >/dev/null 2>&1 &
fi
;;
android_vlc) am start --user 0 -a android.intent.action.VIEW -d "$video_link" -n org.videolan.vlc/org.videolan.vlc.gui.video.VideoPlayerActivity -e "title" "${title} Episode ${episode}" >/dev/null 2>&1 ;; android_vlc) am start --user 0 -a android.intent.action.VIEW -d "$video_link" -n org.videolan.vlc/org.videolan.vlc.gui.video.VideoPlayerActivity -e "title" "${title} Episode ${episode}" >/dev/null 2>&1 ;;
download) "$player_function" "$video_link" "${title} Episode ${episode}" "$relative_link" "$total_eps";; download) "$player_function" "$video_link" "${title} Episode ${episode}" "$relative_link" "$total_eps" ;;
*yncpla*) nohup "$player_function" "$video_link" -- --force-media-title="${title} Episode ${episode}" >/dev/null 2>&1 & ;; *yncpla*) nohup "$player_function" "$video_link" -- --force-media-title="${title} Episode ${episode}" >/dev/null 2>&1 & ;;
esac esac
@@ -163,9 +180,17 @@ decrypt_link() {
} }
get_video_url() { get_video_url() {
case "$provider" in
vidhide | streamwish)
stream_link=$(printf "%s" "$providers_link" | grep "$provider" | cut -d'>' -f2)
video_url=$(curl -s "$stream_link" -A "$agent" | sed -nE 's|.*file:"(.*m3u8[^"]*)".*|\1|p')
;;
*)
decrypt_link "$dpage_link" decrypt_link "$dpage_link"
;;
esac
relative_link=$(printf "%s" "$video_url" | sed 's|[^/]*$||') relative_link=$(printf "%s" "$video_url" | sed 's|[^/]*$||')
video_links=$(curl -s -A "$agent" "$video_url" | sed "s|^#.*x||g; s|,.*|p|g; /^#/d; \$!N; s|\n| >${relative_link}|") video_links=$(curl -s -A "$agent" "$video_url" | sed '/EXT-X-I-FRAME/,$d' | sed "s|^#.*x||g; s|,.*|p|g; /^#/d; \$!N; s|\n| >${relative_link}|")
case $quality in case $quality in
best) best)
video_link=$(printf '%s' "$video_links" | tail -n 1 | cut -d'>' -f2) video_link=$(printf '%s' "$video_links" | tail -n 1 | cut -d'>' -f2)