=== AudioLinter ===
Contributors: schweizerle
Tags: audio, podcast, loudness, quality-control, media
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.0.27
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automated audio QC and loudness checks inside the WordPress editor.

== Description ==

AudioLinter helps WordPress teams review spoken-word audio before publishing. It adds an editorial workflow to the WordPress admin so editors can upload or select an audio file, run automated checks, and review actionable quality feedback without leaving the post editor.

AudioLinter is built for podcast, radio, newsroom, and editorial teams that need fast and repeatable audio quality control.

Key benefits:

* Automated Audio QC for spoken-word publishing workflows
* Loudness normalization guidance based on podcast-friendly target ranges
* Silence Detection to catch Dead Air and playback interruptions
* Clear pass/fail feedback for loudness, peaks, and silent sections
* Optional repair workflows for plans that include audio fixing

AudioLinter uses an external service to process audio.

External service details:

* Service endpoint: https://api.audiolinter.com
* Purpose: secure upload, audio analysis, status polling, and optional repair processing
* Required for core plugin features: yes
* Terms of Service: https://audiolinter.com/terms
* Privacy Policy: https://audiolinter.com/datenschutz

Depending on the feature you use, the plugin may send the following data to the AudioLinter service:

* your AudioLinter API key
* your site URL or domain for account and quota validation
* selected audio files for analysis or repair processing
* upload session metadata such as filename, mime type, and file size
* analysis task IDs, job status data, and result payloads

The plugin includes an explicit consent setting in the WordPress admin. Audio files are not sent for processing until a site administrator agrees to the Terms of Service and Privacy Policy and explicitly consents to external processing.

An AudioLinter account and valid API key are required for analysis and repair features.

== Installation ==

1. Upload the plugin files to the /wp-content/plugins/audiolinter directory, or install the plugin through WordPress.
2. Activate the plugin through the `Plugins` screen in WordPress.
3. Go to AudioLinter > Settings.
4. Enter your AudioLinter API key.
5. Review the external service information and enable the legal consent checkbox.
6. Choose the post types where the AudioLinter metabox should appear.
7. Open a supported post type, upload or select an audio file, and start an analysis.

== Frequently Asked Questions ==

= Does this plugin require a third-party service? =

Yes. AudioLinter connects to the external service at api.audiolinter.com for secure uploads, audio analysis, usage checks, and optional repair workflows.

= Does the plugin send audio files to external servers? =

Yes. Selected audio files are sent to AudioLinter servers for processing, but only after an administrator has explicitly accepted the consent checkbox in the plugin settings.

= Do I need an AudioLinter account? =

Yes. A valid AudioLinter account and API key are required to use the service-connected features.

= What does AudioLinter check? =

AudioLinter focuses on spoken-word audio quality checks such as integrated loudness, peak levels, and Dead Air detection.

= Can AudioLinter help with loudness normalization? =

Yes. The plugin reports loudness results and provides guidance for getting audio closer to the recommended target range.

= Can the plugin repair audio automatically? =

Audio repair actions are available only when the connected AudioLinter plan includes repair support.

= Does the plugin work without WordPress.com or Jetpack? =

Yes. AudioLinter does not require WordPress.com or Jetpack.

= Where can I review the service policies? =

Terms of Service: https://audiolinter.com/terms

Privacy Policy: https://audiolinter.com/datenschutz

== Screenshots ==

1. AudioLinter dashboard with recent analysis results and account-aware usage information.
2. Post editor metabox for uploading or selecting an audio file and starting analysis.
3. Analysis feedback showing loudness, peak, and Dead Air guidance.
4. Settings page with API credentials, consent checkbox, and editor configuration.
5. Help and support area for troubleshooting and workflow guidance.

== Changelog ==

= 1.0.27 =

* New: "Add to Media Library" button on the repaired-file card — saves the corrected audio to your Media Library without inserting it into the post.
* Fixed: on sites with "Plain" permalinks, status polling, downloads and bulk status failed with "No route was found". All plugin requests now work with every permalink setting.
* Fixed: the Download and Insert buttons disappeared after reloading the editor; the repaired file is now remembered.
* Fixed: the result card could overflow the editor sidebar and get clipped on the right.
* Fixed: a temporary connection problem while loading usage stats caused an HTTP 500 instead of a clean error message.
* Improved: the external-processing consent in Settings shows a clear "Action required" badge until accepted.

= 1.0.26 =

* After repairing loudness in the editor panel, you can insert the corrected audio straight into your post with one click — it is added to your Media Library and inserted as an audio block at the cursor (block editor; other editors get a Media Library confirmation). Completes the fix-without-leaving-the-editor flow alongside the 1.0.25 download.

= 1.0.25 =

* You can now repair loudness and download the corrected audio directly from the post editor's AudioLinter panel, without opening the AudioLinter dashboard. A "Fix loudness" button appears under a flagged result, and a Download button appears once the repair finishes.
* Cleaner editor panel: redundant help text removed; your plan and remaining daily analyses and fixes now show as compact, colour-coded chips (green/orange/red) with a hover tooltip. On the Free plan, fixing shows a short upgrade prompt.

= 1.0.24 =

* Security: your AudioLinter API key and webhook token are no longer written into the post editor's page HTML, where any user allowed to edit posts (not just administrators) could read them. They were never used in the browser — every backend call already runs server-side.
* Security: the bulk status view now only returns quality-control results for posts you are allowed to edit, instead of any requested post ID.
* Hardening: every plugin file now refuses direct access, and the plugin loads its own translations from the bundled languages folder.

= 1.0.23 =

* Security: the "trigger fix" action now verifies you can edit the specific post before starting a cloud fix, so a fix (and its quota use) can no longer be triggered against a post you don't own. The background call that remembers an in-progress task across page reloads now requires a valid security nonce, closing a cross-site request forgery gap.
* The loudness chart libraries are now bundled with the plugin instead of being loaded from a CDN, and the upgrade button opens the hosted checkout page directly instead of an external overlay script. No third-party scripts are loaded anymore.

= 1.0.7 - 1.0.22 =

* Two-pass EBU R128 loudness normalization for more accurate repair targeting (-16 LUFS / -1 dBTP).
* Reworked, fully branded admin and editor UI (warm surfaces, accessible focus/hover/pressed states, responsive and reduced-motion aware).
* Redesigned insights dialog: two-column layout, seekable repaired-audio player, per-metric colouring, and a clearer loudness-over-time chart.
* Staged upload/analysis progress with phase labels instead of a bare spinner.
* Branded drag-and-drop file picker with graceful no-JavaScript fallback.
* Numerous reliability fixes for media-library imports, larger files, status labelling (loudness vs. dead air), and result-panel flicker.

= 1.0.6 =

* Added an explicit legal consent flow for external audio processing.
* Added stronger external service disclosure for WordPress.org submission readiness.
* Improved admin UX for service-connected analysis workflows.
* Continued refinement of usage, support, and settings experiences.

== Upgrade Notice ==

= 1.0.27 =

Important fix for sites with "Plain" permalinks (analysis/downloads failed there), plus a new "Add to Media Library" action and several editor polish fixes.

= 1.0.26 =

Insert the repaired audio directly into your post (Media Library + audio block) after a fix, right from the editor panel.

= 1.0.25 =

Repair loudness and download the fixed audio directly in the post editor, plus a cleaner panel with colour-coded usage chips.

= 1.0.24 =

Security update: stops the API key and webhook token from appearing in editor page HTML for post editors, and limits bulk status to posts you can edit. Updating is recommended.

= 1.0.23 =

Security update: closes an ownership-check gap in the fix action and adds CSRF protection to a background admin request. Updating is recommended.

= 1.0.6 =

This release adds the legal consent flow required before sending audio files to AudioLinter servers for processing.
