← All Projects

Video Downloader

Development Roadmap — Paused

6

Total

2

Active

1

Bugs

0

Features

4

Done

67%

Progress

Development Progress

67%

In Progress

2
Bug Critical www.x.com

Unable to Download X Videos

Unable to download videos from x.

In Progress
Task High Site Wide

Initial Alpha Release

Launch of core application with base functionality.

In Progress

Completed

4
Bug Critical download.php

Combined format (360p audio+video) missing from quality picker

Cause: The dedup logic keyed only on resolution (e.g., "360p"). The adaptive video-only format (itag 134, 360p) was processed first and blocked the combined format (itag 18, 360p with audio) from appearing. Fix: Changed the dedup key to include the audio type: resolution + '_av' or '_vo'. Added "(video only)" labels to video-only formats. Sorted combined formats first so users see the audio+video option at the top of the quality dropdown.

Completed
Bug Critical download.php

Download proxy returned 0 bytes (HTTP 200 but empty body)

Cause: The page-scraped YouTube streaming URLs contain an n (throttle) parameter that requires JavaScript-based deciphering. Without transforming n, YouTube returns HTTP 403 on the actual video URL. The old streaming proxy (CURLOPT_WRITEFUNCTION) silently produced an empty response. Fix: Rewrote proxy_download() to download to a temp file first, then serve it via serve_file(). Added proper error reporting that surfaces the upstream HTTP status code (e.g., "HTTP 403") instead of silently failing.

Completed
Bug Critical download.php

HTTP 500 on download.php

Cause: The server has shell_exec in PHP's disable_functions. On PHP 8+, calling a disabled function throws an uncaught Error exception that the @ suppression operator doesn't catch. Line 66: @shell_exec('which ffmpeg 2>/dev/null') crashed the entire script. Fix: Added a can_exec() guard check before calling shell_exec, plus a try/catch (\Throwable) for safety. Also added @ to set_time_limit() as a precaution.

Completed
Bug Critical download.php

Resolve YouTube returning "Sign in to confirm you're not a bot" error

Cause: The IOS InnerTube client (clientName: IOS) is blocked by YouTube's bot detection when requests come from data center IPs. Fix: Switched primary YouTube client to ANDROID (clientName: ANDROID, version 19.30.36). This client returns direct, unthrottled streaming URLs and isn't currently blocked from the server's IP. Kept embedded player and IOS as fallback strategies.

Completed