fix: replace html.unquote with urllib.parse.unquote
Erfan
91f7053
feat: remove 50MB file size limit for downloads
Erfan
7ae3637
fix: simplify yt-dlp call, fix NoneType crash
Erfan
eb06806
- Remove format detection step (was also failing)
- Fallback chain: best[ext=mp4]/best/worst -> best/worst -> worst
- Fix NoneType crash by checking if info is None before prepare_filename
- Remove problematic opts (ignoreerrors, retries options that caused issues)
- Use minimal stable config
refactor: clean yt-dlp pipeline with auto-detection
Erfan
07f5737
- Remove forced client switching (extractor_args/player_client loop)
- Auto-detect available formats before downloading
- Pick best progressive + mp4 format matching requested quality
- Add 3 retries + format fallback chain
- Add throttled_rate=100M for throttling bypass
- Add no_part=True for Render-safe streaming (no .part files)
- Remove dead external API fallbacks (piped, invidious, cobalt, ytdl.ga)
- Remove pytubefix dependency
fix: yt-dlp format + async bug
Erfan
ad28217
- Replace all DASH format strings with simple best[ext=mp4]/best
for progressive streams only (fixes 'format not available')
- Also try worst/best as ultimate fallback
- Add missing await on get_file_link() call in handlers.py
fix: use format_sort instead of strict height filters in -f
Erfan
79e1abd
- Drop [height<=720] strict filters from format strings
- Add format_sort with res:720/vcodec:h264/acodec:aac
- Fixes 'Requested format not available' when no exact 720p stream exists
fix: multiple format attempts per yt-dlp client + ytdl.ga API fallback
Erfan
0e4bd6e
- Fix 'Requested format not available' by trying 3 format strings per client
- Use bv*+ba/b (best video+audio merge) as primary format
- Add ytdl.ga and najemi.cz PHP API endpoints as fallback
- Prioritize yt-dlp (with cookies) then ytdl.ga then rest
feat: hardcode YouTube cookies for bot bypass
Erfan
ad6c7a2
feat: add YouTube cookies upload support + more yt-dlp clients
Erfan
679718f
- Add document upload handler for cookies.txt files in YouTube mode
- Add _download_bale_file helper to download files from Bale
- Reorder download methods: yt-dlp with cookies first, then fallbacks
- Add more yt-dlp client types (android_embedded, music)
- Add '🍪 Upload Cookies' command with export instructions
- Show hint about cookies when invalid input is sent in YouTube mode
fix: piped+invidious+cobalt APIs, yt-dlp last resort
Erfan
67319a1
fix: 5 yt-dlp clients + cobalt API fallback
Erfan
6f0a0db
fix: remove cli import from pytubefix
Erfan
f528143
fix: proper filenames for file downloads, send_document filename param
Erfan
5592c90
fix: use pytubefix primary, yt-dlp fallback
Erfan
b73f3ca
fix: use web client with cookies for yt
Erfan
7b04a3b
fix: robust yt download with fallback formats
Erfan
06e9041
fix: use basic format selectors for android client
Erfan
0cf9dca
fix: use single stream formats for android/tv client
Erfan
7254955
fix: use tv+android player clients for yt
Erfan
ea798f8
fix: use android player client to bypass yt bot detection