What makes us different from other similar websites? › Forums › Tech › How to Stop Ad Blocker Detection on Websites Like YouTube › Reply To: How to Stop Ad Blocker Detection on Websites Like YouTube
May 25, 2026 at 11:45 am
#8485
Moderator
The logo was updated.
#!/bin/bash
# --- COLORS & STYLING ---
G='\033[0;32m' # Success
B='\033[0;34m' # Secondary
P='\033[38;5;211m' # Rose Pink (Primary)
Y='\033[1;33m' # Warning
R='\033[0;31m' # Danger
W='\033[1;37m' # Highlight
NC='\033[0m' # Reset
# --- CONFIGURATION ---
YTDLP_URL="https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp"
YTDLP_BIN="./yt-dlp"
OUTPUT_BASENAME="downloaded_video"
PLAYLIST_FILE="video_playlist.txt"
CONFIG_FILE=".ytdlp_config"
LOC_CONFIG=".ytdlp_location"
PLAYLIST_PATH_CONFIG=".ytdlp_playlist_path"
# --- LOCATION HELPER ---
get_save_directory() {
local SAVED_DIR=""
[ -f "$LOC_CONFIG" ] && SAVED_DIR=$(cat "$LOC_CONFIG")
if [ -d "$SAVED_DIR" ]; then
echo -e "${Y}» Existing Path Found:${NC} $SAVED_DIR" >&2
read -p " Use this location? (y/n): " USE_SAVED >&2
if [[ "$USE_SAVED" =~ ^[Yy]$ ]]; then
echo "$SAVED_DIR"
return 0
fi
fi
echo -e "${P}» Setup New Directory${NC}" >&2
read -p " Enter Full Path: " NEW_DIR >&2
if [ -d "$NEW_DIR" ]; then
echo "$NEW_DIR" > "$LOC_CONFIG"
echo "$NEW_DIR"
else
echo -e "${R}✘ Directory does not exist!${NC}" >&2
echo ""
fi
}
# --- PLAYLIST PERSISTENCE HELPER ---
get_playlist_file() {
if [ -f "$PLAYLIST_PATH_CONFIG" ]; then
cat "$PLAYLIST_PATH_CONFIG"
else
echo "$PLAYLIST_FILE"
fi
}
# --- AUTHENTICATION & UPDATE HELPER ---
get_failure_fix() {
echo -e "\n${R}┌───────────────────────────────────────────────────────────┐${NC}"
echo -e "${R}│ CRITICAL ERROR: Download Interrupted │${NC}"
echo -e "${R}└───────────────────────────────────────────────────────────┘${NC}"
echo -e " [${P}U${NC}] Check for Updates [${P}B${NC}] Link Browser Cookies"
echo -e " [${P}F${NC}] Manual cookies.txt [${P}N${NC}] Return to Dashboard"
echo -e "${B}─────────────────────────────────────────────────────────────${NC}"
read -p " Action Required: " FIX_CHOICE
case $FIX_CHOICE in
[uU]*)
echo "Checking for updates..."
if "$YTDLP_BIN" -U; then
echo "Update successful."
else
curl -L "$YTDLP_URL" -o "$YTDLP_BIN" && chmod +x "$YTDLP_BIN"
fi
return 0 ;;
[fF]*)
read -p " Path to cookies.txt: " USER_FILE
[ -f "$USER_FILE" ] && echo "$USER_FILE" > "$CONFIG_FILE" && return 0 ;;
[bB]*)
echo -e " (1)Chrome (2)Firefox (3)Brave (4)Edge (5)Opera (6)Vivaldi (7)Tor"
read -p " Select [1-7]: " B_NUM
case $B_NUM in 1) B="chrome";; 2) B="firefox";; 3) B="brave";; 4) B="edge";; 5) B="opera";; 6) B="vivaldi";; 7) B="tor";; *) return 1;; esac
echo "BROWSER:$B" > "$CONFIG_FILE" && return 0 ;;
*) return 1 ;;
esac
}
# --- CORE FUNCTIONS ---
run_yt_dlp() {
local URL=$1
local AUTH_OPTS=()
if [ -f "$CONFIG_FILE" ]; then
VAL=$(cat "$CONFIG_FILE")
if [[ "$VAL" == BROWSER:* ]]; then
AUTH_OPTS=("--cookies-from-browser" "${VAL#BROWSER:}")
else
AUTH_OPTS=("--cookies" "$VAL")
fi
fi
"$YTDLP_BIN" "${AUTH_OPTS[@]}" -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' \
--merge-output-format mp4 --output "${OUTPUT_BASENAME}.%(ext)s" "$URL"
return $?
}
process_media() {
local MODE=$1
local URL=$2
local RETRY=true
if [ -z "$URL" ]; then
CLIP=$(xclip -selection clipboard -o 2>/dev/null)
echo -e "${P}» Input URL${NC}"
read -p " Paste link (Enter for clipboard): " MANUAL_URL
URL=${MANUAL_URL:-$CLIP}
fi
[ -z "$URL" ] && return
[[ "$MODE" != "SILENT" ]] && read -p " Monitor Index (0-9) [Default 0]: " MON && MON=${MON:-0}
while [ "$RETRY" = true ]; do
if run_yt_dlp "$URL"; then
RETRY=false
FILE=$(ls ${OUTPUT_BASENAME}.* 2>/dev/null | head -n 1)
if [ -f "$FILE" ]; then
[[ "$MODE" != "SILENT" ]] && mpv --fs --screen="$MON" "$FILE"
if [[ "$MODE" == "DOWNLOAD" || "$MODE" == "STREAM" || "$MODE" == "PLAYLIST_SAVE" || "$MODE" == "PLAYLIST_PROCESS" ]]; then
if [[ "$MODE" == "PLAYLIST_SAVE" ]]; then
read -p " Add this URL to the bottom of the playlist? (y/n): " ADD_PL
if [[ "$ADD_PL" =~ ^[Yy]$ ]]; then
CURRENT_PL=$(get_playlist_file)
echo "$URL" >> "$CURRENT_PL"
echo -e "${G}✔ URL appended to $CURRENT_PL${NC}"
fi
fi
read -p " Download complete. Save file? (y/n): " KEEP
if [[ "$KEEP" =~ ^[Yy]$ ]]; then
DEST=$(get_save_directory)
if [ -n "$DEST" ] && [ -d "$DEST" ]; then
local SA_OPTS=()
if [ -f "$CONFIG_FILE" ]; then
local V=$(cat "$CONFIG_FILE")
[[ "$V" == BROWSER:* ]] && SA_OPTS=("--cookies-from-browser" "${V#BROWSER:}") || SA_OPTS=("--cookies" "$V")
fi
TITLE=$("$YTDLP_BIN" "${SA_OPTS[@]}" --get-title "$URL" | tr -dc '[:alnum:]\n\r ' | tr ' ' '_')
mv "$FILE" "$DEST/${TITLE}.mp4"
echo -e "${G}✔ Saved to $DEST/${TITLE}.mp4${NC}"
read -p "Press Enter to continue..."
else
echo -e "${R}✘ Save cancelled or directory invalid.${NC}"
rm "$FILE"
read -p "Press Enter to continue..."
fi
else
[ -f "$FILE" ] && rm "$FILE"
fi
fi
fi
else
if get_failure_fix; then
read -p " Fix applied. Retry now? (y/n): " REA
[[ ! "$REA" =~ ^[Yy]$ ]] && RETRY=false
else
RETRY=false
read -p " Press Enter to continue..."
fi
fi
done
}
# --- DASHBOARD ---
[ ! -f "$YTDLP_BIN" ] && curl -L "$YTDLP_URL" -o "$YTDLP_BIN" && chmod +x "$YTDLP_BIN"
while true; do
clear
echo -e "${P} ████████╗ █████╗ ██╗ ██╗███████╗ ███████╗██╗ ██╗ █████╗ ██████╗██╗ ██╗"
echo -e " ╚══██╔══╝██╔══██╗██║ ██╔╝██╔════╝ ██╔════╝██║ ██║██╔══██╗██╔════╝██║ ██╔╝"
echo -e " ██║ ███████║█████╔╝ ███████╗ ███████╗███████║███████║██║ █████╔╝ "
echo -e " ██║ ██╔══██║██╔═██╗ ╚════██║ ╚════██║██╔══██║██╔══██║██║ ██╔═██╗ "
echo -e " ██║ ██║ ██║██║ ██╗███████║ ███████║██║ ██║██║ ██║╚██████╗██║ ██╗"
echo -e " ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝${NC}"
echo -e " ${B}─────────────────────────────────────────────────────────────────────────────${NC}"
# FIXED LOGO
echo -e "${R}"
echo -e " ###################################### "
echo -e " ############################################ "
echo -e " ##############################################"
echo -e " ##############################################"
echo -e " ##############################################"
echo -e " ##################-.=*########################"
echo -e " ##################-. ..:*#####################"
echo -e " ##################- . .:+*#################"
echo -e " ##################- . .. ...*###############"
echo -e " ##################-. .:+*#################"
echo -e " ##################- :*#####################"
echo -e " ##################-.=*########################"
echo -e " ##############################################"
echo -e " ##############################################"
echo -e " ##############################################"
echo -e " ############################################ "
echo -e " ###################################### "
echo ""
echo -e "${NC}"
echo -e "${P} ██████╗ ██████╗ ██╗ ██╗███╗ ██╗██╗ ██████╗ █████╗ ██████╗ ███████╗██████╗ "
echo -e " ██╔══██╗██╔═══██╗██║ ██║████╗ ██║██║ ██╔═══██╗██╔══██╗██╔══██╗██╔════╝██╔══██╗"
echo -e " ██║ ██║██║ ██║██║ █╗ ██║██╔██╗ ██║██║ ██║ ██║███████║██║ ██║█████╗ ██████╔╝"
echo -e " ██║ ██║██║ ██║██║███╗██║██║╚██╗██║██║ ██║ ██║██╔══██║██║ ██║██╔══╝ ██╔══██╗"
echo -e " ██████╔╝╚██████╔╝╚███╔███╔╝██║ ╚████║███████╗╚██████╔╝██║ ██║██████╔╝███████╗██║ ██╗"
echo -e " ╚═════╝ ╚═════╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝${NC}"
echo -e " ${B}─────────────────────────────────────────────────────────────────────────────${NC}"
echo -e " ${W}Media Engine${NC} | TAKsShack.com"
echo -e " ${B}─────────────────────────────────────────────────────────────────────────────${NC}"
if [ -f "$CONFIG_FILE" ]; then
echo -e " ${G}●${NC} AUTH: ${W}$(cat "$CONFIG_FILE")${NC}"
else
echo -e " ${R}○${NC} AUTH: ${B}Anonymous${NC}"
fi
if [ -f "$LOC_CONFIG" ]; then
echo -e " ${G}●${NC} PATH: ${W}$(cat "$LOC_CONFIG")${NC}"
else
echo -e " ${R}○${NC} PATH: ${B}Not Configured${NC}"
fi
echo ""
echo -e " [${P}1${NC}] Stream Video [${P}4${NC}] Run Playlist File (DL & Play)"
echo -e " [${P}2${NC}] Download & Play [${P}5${NC}] Silent Batch Download"
echo -e " [${P}3${NC}] Multi-Link Process [${P}7${NC}] Download & Save To Playlist"
echo -e " [${P}8${NC}] Bulk Paste To Playlist [${P}c${NC}] Reset / Update Core"
echo -e " [${P}6${NC}] ${R}Exit Terminal${NC}"
echo -e " ${B}─────────────────────────────────────────────────────────────────────────────${NC}"
echo -n " SELECT ACTION: "
read CHOICE
case $CHOICE in
1) process_media "STREAM" ;;
2) process_media "DOWNLOAD" ;;
3) read -p " Paste links: " MUL; for L in $MUL; do process_media "DOWNLOAD" "$L"; done ;;
4)
CURRENT_PL=$(get_playlist_file)
if [ ! -f "$CURRENT_PL" ]; then
echo -e "${R}✘ Playlist file not found at $CURRENT_PL${NC}"
read -p " Enter full path to your playlist file: " NEW_PL_PATH
echo "$NEW_PL_PATH" > "$PLAYLIST_PATH_CONFIG"
CURRENT_PL=$NEW_PL_PATH
fi
if [ -f "$CURRENT_PL" ]; then
while :; do
L=$(head -n 1 "$CURRENT_PL")
[ -z "$L" ] && break
process_media "PLAYLIST_PROCESS" "$L"
read -p " Finished processing link. Remove it from playlist? (y/n): " REMOVE
if [[ "$REMOVE" =~ ^[Yy]$ ]]; then
sed -i '1d' "$CURRENT_PL"
echo -e "${G}✔ Link removed from top of playlist.${NC}"
else
read -p " Skip to next link without removing? (y/n): " SKIP
[[ "$SKIP" =~ ^[Yy]$ ]] && sed -i '1d' "$CURRENT_PL" || break
fi
done
fi ;;
5)
read -p " Paste links: " B_URLS
B_DEST=$(get_save_directory)
if [ -d "$B_DEST" ]; then
for L in $B_URLS; do
process_media "SILENT" "$L"
F=$(ls ${OUTPUT_BASENAME}.* 2>/dev/null | head -n 1)
[ -f "$F" ] && mv "$F" "$B_DEST/"
done
fi ;;
7) process_media "PLAYLIST_SAVE" ;;
8)
CURRENT_PL=$(get_playlist_file)
read -p " Paste links space-separated: " BULK_PL_LINKS
for L in $BULK_PL_LINKS; do
echo "$L" >> "$CURRENT_PL"
echo -e "${G}✔ Added to playlist:${NC} $L"
done
read -p "Bulk save complete. Press Enter to return..."
;;
c|C)
echo -e " Clear [${P}A${NC}]uth, [${P}L${NC}]ocation, or [${P}P${NC}]laylist Path?"
read CLEAR_MODE
[[ "$CLEAR_MODE" =~ ^[Aa]$ ]] && rm "$CONFIG_FILE" 2>/dev/null
[[ "$CLEAR_MODE" =~ ^[Ll]$ ]] && rm "$LOC_CONFIG" 2>/dev/null
[[ "$CLEAR_MODE" =~ ^[Pp]$ ]] && rm "$PLAYLIST_PATH_CONFIG" 2>/dev/null
;;
6) rm "$YTDLP_BIN" 2>/dev/null; clear; break ;;
esac
done
