Skip to content

v8.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 17:29

Highlights

  • More reliable queue and transfers: transient errors requeue jobs automatically (new retry_count), interrupted output transfers can resume, output files can be rechecked, and old encoded outputs are removed when a job restarts. Uploads to the Streamer are sent in chunks to avoid HTTP 413 errors. (bbc2536, ad35d1f, 7f2bfac, e74394a, ac126a4)
  • Encoding progress UI: real-time speed, ETA, FPS, bitrate and size, per-stage tracking and a queue summary. The main Encoder page uses DataTables instead of Bootgrid. (99d8723, 4f57a6d, 256d2d1, 1cb7322)
  • New installer with configuration validation, a connection test and Ubuntu setup help. (6101600, 4ebd59b)
  • Security: commit messages in this range reference 8 GitHub security advisories (GHSA). Changes include SSRF protection for remote URLs, escaped shell arguments, permission checks returning 403, HTML escaping and prepared SQL statements. (c659422, 386070a, ac6097c, d9b3446, 8a6e2b8)

New features

  • Server and PHP configuration details for admins. (84b2d1d, 8e3bc24)
  • Site access renewal with a password prompt. (e3c87fe)
  • Chunk-upload token support when sending files to the Streamer. (9d4e3cf)
  • yt-dlp: checks whether --js-runtimes is supported and adds curl_cffi support, with clearer errors when dependencies are missing. (bb91e4c, f282f24, fc4892a)

Fixes

  • Encoder::send() reports transfer failures instead of failing silently, with longer cURL timeouts for large files. (953df5a, 633ac71)
  • The Streamer password transform is computed locally instead of through a request to the Streamer's encryptPass.json.php. (80ce5e5)
  • The HLS master playlist references an audio group only when audio tracks exist. (5d1491f)

Other changes

  • Docker: better database connection error handling in wait-for-db, and the locale and API directories are now included in the image. (8406dd7)
  • CI: CodeQL, dependency review and stale workflows, and PHP lint on 8.4 and 8.5. (b9c943e, ca3c632)
  • Automated weekly releases with semantic versioning; see RELEASING.md. (4d25651)

Upgrade notes

  • Database updates 8.1 (encoder_queue.return_vars becomes TEXT) and 8.2 (adds encoder_queue.retry_count) are listed on the Encoder Update page. If retry_count already exists, the 8.2 update tolerates it, and other query errors now stop the update with a message. (e1922d0, bbc2536, 879701d)
  • The Docker image is now based on php:8.2-apache (previously php:7-apache). (57b7af3)
  • $global['allowPrivateNetworkURLs'] now defaults to true unless it is already set, so the Encoder can reach a Streamer on a private network. (4aa4d92)

Full changelog: 8.0...v8.1.0
Release commit: 4d25651ce4a4

Original automated release notes

8.1.0 (2026-09-23)

Features

  • release: implement automated weekly release process with semantic versioning (4d25651)

Other changes

  • Add deleteEncodedOutputFiles method to Encoder class; invoke it in restart_queue and queue handling to ensure clean slate for re-encoding jobs (e74394a)
  • Add detailed server information display for admin users (84b2d1d)
  • Add error handling for failed encoding task saves; return appropriate HTTP response (6dc13bf)
  • Add forceDuration parameter to sendFile for improved duration handling in chunked uploads (26492ea)
  • Add GitHub Actions workflows for CodeQL analysis, dependency review, stale issue management, and PHPUnit testing (b9c943e)
  • Add HTML escaping function and apply it to user-generated content for improved security (d9b3446)
  • Add installer functionality for Encoder with comprehensive setup and validation (6101600)
  • Add logging for encoder return variables and streamer details in sendToStreamer function (9665af1)
  • Add method to find closest available resolution; update resolution mapping in encoding process (792e2e1)
  • Add PHP configuration details to streamer info display (8e3bc24)
  • Add queue summary display and update logic for encoding statuses in the interface (256d2d1)
  • Add real-time encoding and download stats to UI; enhance progress display with speed, ETA, FPS, bitrate, and size (99d8723)
  • Add recheck output files functionality and corresponding UI integration (7f2bfac)
  • Add retry_count to encoder_queue and implement automatic job requeueing for transient errors (bbc2536)
  • Add site access renewal functionality and corresponding UI; implement authentication checks and modal for password input (e3c87fe)
  • Add support for checking yt-dlp --js-runtimes flag availability to prevent hard failures (bb91e4c)
  • Add support for chunk-upload token in encoder and queue handling (9d4e3cf)
  • Add support for videos_id in response handling and set user agent for cURL requests (bbd4d2a)
  • Add transfer error handling and regression tests for transfer diagnostics (c981040)
  • Adjust column sizes in index and userGroups for improved layout responsiveness; add title attributes for better accessibility (da297e6)
  • Adjust column widths in index layout for better responsiveness; simplify icon styling in share videos section (d09d7a1)
  • Create SECURITY.md for security policy (fee3f4d)
  • Enhance authentication handling in status.php; implement API authentication for cross-domain requests and maintain session authentication for same-domain requests with appropriate error responses (8963f29)
  • Enhance checkJSRuntime script to support curl_cffi installation and improve diagnostics for Deno and Node.js. Update version to 2.1 and ensure compatibility across Ubuntu/Debian systems. (fc4892a)
  • Enhance cookie handling in Login class; set cookies only for browser requests and log CLI skips for better debugging (72807a8)
  • Enhance Dockerfile and wait-for-db script; add locale and API directories, improve database connection error handling in wait-for-db (8406dd7)
  • Enhance Encoder class; add support for HLS media extensions and create regression test for duration validation (c21d14c)
  • Enhance Encoder class; improve stage handling and add regression test for concurrency and state preservation (6c2f3c8)
  • Enhance encoding process feedback with detailed status updates and progress animations; improve error handling for image uploads and adjust timeout settings for media transfers (170f0c9)
  • Enhance encoding process with stage tracking and UI updates; improve progress display and status handling across various components (4f57a6d)
  • Enhance EPG JSON file handling; add error logging for unreadable, empty, or invalid JSON files and ensure required fields are set (e84a5bc)
  • Enhance error handling and compatibility in encryptPassword function; support private shared token and legacy fallback for multi-streamer deployments (0faadde)
  • Enhance error logging for missing PHP extensions with installation instructions for ZipArchive and mysqli (4355e2c)
  • Enhance FTP URL validation and SSL verification; prevent private network URLs and improve error handling in login process (60430ee)
  • Enhance HLS handling; improve login response processing and add visual indicators for HLS availability in the user interface (9e7f704)
  • Enhance HLSProcessor to conditionally reference audio group in master playlist based on available audio tracks, improving compatibility with various media sources. (5d1491f)
  • Enhance installer functionality; add directory ownership matching for configuration files and improve Streamer password validation process (4ebd59b)
  • Enhance language and URL handling; sanitize user input and session variables for improved security (789d756)
  • Enhance logging in Encoder and run.php; log execution details and permission checks for better debugging (41fcd30)
  • Enhance logging in sendToStreamer function to include detailed cURL execution information and request fields for better debugging (2dd8cba)
  • Enhance login verification logic to allow login when site is unavailable, improving user experience and error handling. (1f8f7cc)
  • Enhance network security; implement hostname whitelist for trusted private domains in getExternalHttpUrlForShell and enable private network URLs by default in include_config (4aa4d92)
  • Enhance output transfer handling; prevent reuse of old upload receipts and add regression tests for transfer confirmation (43fc98f)
  • Enhance password encryption by adding a time-limited HMAC token to the request URL and improve error logging for encryption failures. (f8af280)
  • Enhance Portuguese localization; add new translations for video processing actions and status details (a8ca48b)
  • Enhance progress bar styling and add overlay for better text visibility; implement empty queue state notification in the encoding interface. (10c5abd)
  • Enhance queue item styling with status-specific borders and improve log display for better readability in the encoding interface. (d56f441)
  • Enhance resolution handling in encoding process; improve logging for resolution mapping and add CSS styles for resolution labels (b1b047a)
  • Enhance session logging in getAllowedResolutions; log detailed session summary for better debugging (92eb1f9)
  • Enhance Streamer password validation; allow raw password submission for verification with its own salt (dfa5d08)
  • Enhance UI components with improved layout and accessibility; update icons and styles for better user experience (9f2af63)
  • Enhance URL handling in createSpiritsFromVideo and getImageMP4 functions by escaping shell arguments and improving input sanitization to prevent command injection vulnerabilities. (386070a)
  • Enhance URL safety validation in login process; log errors for blocked URLs and invalid credentials (aedfd63)
  • Enhance yt-dlp installation and error handling by adding curl_cffi support and providing user-friendly error messages for missing dependencies. (f282f24)
  • Ensure streamer site registration on save with verification (505c9f9)
  • Extend basic linting to PHP8.4, PHP8.5. (ca3c632)
  • Fix data retrieval in transfer refresh logic; update to use 'data' instead of 'rows' (3b03fc0)
  • Fix encryptPassword function to return an empty string on encryption failure and improve error logging. (2c1069c)
  • Fix missing newline at end of file in userGroups.php (58f9ba2)
  • WWBN/AVideo#10538 (f8888a9)
  • Implement chunked file uploads in sendFileChunk to handle large files and avoid HTTP 413 errors; enhance logging for better debugging (ac126a4)
  • Implement output transfer resume functionality; add error handling and UI updates (ad35d1f)
  • Implement permission checks for user actions in multiple views; return 403 status for unauthorized access (ac6097c)
  • Implement SSRF protection in getLinkInfo and getSpiritsFromVideo functions to block requests to private/internal network addresses and improve error handling for invalid URLs. (c659422)
  • Implement streamer URL validation and enhance input sanitization for video processing (99b8ad9)
  • Improve error handling in Encoder::send() to prevent silent failures during file transfers (953df5a)
  • Improve error messages for missing PHP extensions 'zip' and 'mysqli' with detailed installation instructions (ae692be)
  • Improve file transfer handling in getVideoFile function to support bulk local files, ensuring original videos are preserved during encoding. (b48cf48)
  • Increase cURL timeouts for large file transfers and enhance error handling for HTTP 413 responses (633ac71)
  • Initialize retry_count to 0 in Encoder class to ensure proper handling of default values during save operations. (f5d28d6)
  • Optimize sendFileChunk to avoid unnecessary retries and enhance error handling for HTTP 413 responses (7cead80)
  • Refactor data table integration; replace bootgrid with DataTables for improved functionality and performance (1cb7322)
  • Refactor encryptPassword function to locally compute password transformation, removing reliance on remote service for enhanced security and performance. (80ce5e5)
  • Refactor error handling and logging in Encoder class; update lock file timeout to 300 seconds for improved concurrency management (10cbae3)
  • Refactor IP address retrieval functions for improved clarity and validation (70e3162)
  • Refactor PHPUnit workflow to include conditional checks for composer.json and PHPUnit availability (74f66e8)
  • Refactor pip installation commands in Dockerfile and docker-entrypoint to conditionally use --break-system-packages flag, improving compatibility and reducing potential errors. (170b0b5)
  • Refactor README.md to center-align images and links for improved presentation (0028a01)
  • Refactor SQL query in Streamer::get to use prepared statements for improved security and error handling (8a6e2b8)
  • Refactor upload action group styles; enhance button group layout and responsiveness (b8fe497)
  • Refactor URL validation and SSRF protection across multiple files using getExternalHttpUrlForShell function (2c02025)
  • Refactor video metadata handling in upload process to support metadata-only bootstrap and improve error logging (eb64d35)
  • Refactor video processing logic to handle exceptions gracefully and restore HLS support based on streamer capabilities. (4f7201f)
  • Remove display of scanned php.ini files from streamer info (0d6a7c3)
  • Replace glyphicon icons with Font Awesome equivalents for improved consistency in the interface (fc1a757)
  • Some locale progress. (a554ba8)
  • There's no "videos" path in AVideo-Encoder root. (67a1c44)
  • Update CodeQL workflow to include PHP language in analysis matrix (e09a716)
  • Update CodeQL workflow to use version 4 and refine language matrix configuration (fbabb31)
  • Update error message for missing ZipArchive to include enabling the extension (cfaee3c)
  • Update installer and update scripts; increment encoder version to 8.2 and improve error handling during database updates (879701d)
  • Update README.md to enhance project description, add workflow badges, and clarify installation requirements (0b29011)
  • Update README.md with domain change notice and enhance feature descriptions (3a97808)
  • Update stale.yml to enhance cache cleanup process and improve stale issue handling (c6d385f)
  • Update version to 8.1 and enhance database schema for encoder_queue (e1922d0)
  • Upgrade PHP version to 8.2 in Dockerfile; streamline package installation and GD configuration (57b7af3)

Release commit: 4d25651ce4a4