Changes
Web UI
- Add minimal dark mode
- Add button to clear logs
- Add button to refresh logs
- Add
No logs were found
placeholder when the log file is empty - No longer redirect to a new page on form submission
- Refactor templates, scripts and styles to improve perceived loading performance
- Only display the document body after the content has fully loaded in order to avoid a flash of unstyled content
Security
- Remove insecure inline scripts and styles and further restrict
Content-Security-Policy
to prevent them from being loaded - Only allow cross-origin
POST
requests, notGET
requests
Options
- Allow the full range of port numbers from
1
to65535
- Remove
PROXY_HEADERS
andFORWARDED_ALLOW_IPS
options for security - Change default
UMASK
value for Docker container from002
to022
- Add command-line argument
--log-dir
and corresponding environment variableLOG_DIR
for setting the log file directory - Set gallery-dl and yt-dlp log level independently of the server log level using the
--log-level
argument orLOG_LEVEL
- Set the server log level with
--server-log-level
orSERVER_LOG_LEVEL
- Display WebSocket connection logs based on the
--access-log
setting instead of the server log level
Logging
- Improve logging responsiveness and ensure messages are not missed
- Implement asynchronous log handling to allow the server to handle requests while logging
- Pad progress messages to a fixed length to prevent subsequent lines from being truncated when the length changes
- Remove all possible ANSI escape codes during formatting to prevent unprintable characters showing up in the web UI logs
- Strip trailing whitespace after removing ANSI escape sequences to ensure no empty lines appear in the logs
- Fix progress updates containing download completion percentage causing progress to be split across multiple lines in the web UI
- Improve speed and efficiency of progress updates
- Read previous line from the same position on successive iterations to enable progress to be updated on the same line even when other log messages are being received and ensure the position is preserved between page refreshes
- Remember progress update position in the web UI using
localStorage
so that a page refresh does not cause the position to be lost, causing the next progress update to be logged on a new line - Only show the final download progress message in the console to avoid issues with dynamic updates
- Remove the logic that prints a blank line to the console on the first form submission
Package
- Add Python version check and raise an
ImportError
if Python version is not 3.10 or above - Add ability to run the package programmatically via
run()
method which can be imported directly from the package
Docker Image: GitHub Container Registry / Docker Hub
Full Changelog: v0.7.3...v0.8.0