=== scinet Podcast ===
Contributors: scinet
Donate link: https://www.scinet.eu/danke-sagen/
Tags: podcast, episodes, spotify, youtube, transcripts
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.9.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Manage podcast episodes, editorial metadata, privacy-aware media players and readable episode URLs.

== Description ==

scinet Podcast stores podcast episodes in a dedicated WordPress database table.
Editors can maintain titles, publication dates, cover images, descriptions,
transcripts, frequently asked questions and links to Spotify or YouTube.

Episodes can be displayed with the `[scinet_podcast slug="episode-slug"]`
shortcode. `[scinet_podcast_list]` displays a paginated episode archive. The
default episode route is `/podcast/episode-slug/`; an existing
`/hypnose-podcast/` page is detected automatically and the former route remains
available as a redirect alias. Routes and sitemap names can also be changed by
WordPress filters. The legacy `[podcast]` and `[podcast_list]` shortcodes remain
available for existing sites. Existing database and option names are retained
during the rename.

The frontend includes responsive, keyboard-accessible plugin styles and does
not require Bootstrap or another theme framework. An optional MP3 attachment
or URL is loaded only after the visitor starts playback and provides play,
pause, seek, speed and episode navigation controls. Spotify and YouTube players
are not loaded until a visitor selects the corresponding load button.

All plugin functions are available free of charge. There are no paid feature
unlocking mechanisms, license keys, trials or usage limits. Optional voluntary
support does not affect functionality, updates or regular use.

Developed by scinet studio - Denise Hollstein.

== Privacy ==

= External services =

Administrators can add links to Spotify episodes and YouTube videos. The plugin
shows a local placeholder first. Only after a visitor deliberately selects the
load button does the browser connect to the selected provider and load an
iframe. A direct provider link also opens only after a deliberate click.

Administrators can also add an HTTPS URL for an MP3 file. The URL is stored in
the site's database and the browser does not request it until the visitor starts
playback. A remote MP3 host may then receive the same ordinary request data;
site owners must identify that host and its policies in their own privacy notice.

When content is loaded or a direct link is followed, Spotify or Google/YouTube
may receive the visitor's IP address, browser and device information, referrer,
requested media identifier, time of access, cookies and other data according to
the provider's settings and policies.

* Spotify AB, for playing a configured podcast episode:
  Privacy Policy: https://www.spotify.com/legal/privacy-policy/
  Terms: https://www.spotify.com/legal/end-user-agreement/
* Google LLC/YouTube, for playing a configured video:
  Privacy Policy: https://policies.google.com/privacy
  Terms: https://www.youtube.com/t/terms

The plugin does not load executable remote code, create its own tracking cookies
or send telemetry. Site owners are responsible for describing enabled media
providers in their privacy notice and for obtaining any consent required in
their jurisdiction.

== Installation ==

1. Upload the `scinet-podcast` directory to `/wp-content/plugins/` or install a release ZIP.
2. Activate "scinet Podcast" in the WordPress plugin screen.
3. Add episodes under "Podcast" in the WordPress administration area.
4. Add `[scinet_podcast_list]` to an archive page or use `[scinet_podcast slug="episode-slug"]` for one episode.

When updating from the former `podcast/podcast.php` path, WordPress may
deactivate the old plugin path. Replace the directory and activate "scinet
Podcast" once. Existing episode rows remain in the `podcast_posts` table.

Customer-specific editorial seed files are not part of the public runtime and
are excluded from release packages. Existing database content is unaffected.

== Frequently Asked Questions ==

= Does changing the plugin directory delete existing episodes? =

No. Version 1.9.0 deliberately retains the existing database table, schema
option, public episode URLs and integration hooks. WordPress may require one
manual activation after the plugin path changes.

= Do the old shortcodes still work? =

Yes. `[podcast]` and `[podcast_list]` are compatibility aliases. New content
should use `[scinet_podcast]` and `[scinet_podcast_list]`.

= Are Spotify and YouTube loaded automatically? =

No. The browser connects to the selected media provider only after the visitor
clicks the load button or a direct provider link.

= Does uninstalling remove episodes? =

No. Deactivation and uninstallation intentionally retain editorial data to
prevent accidental data loss.

= Is any functionality paid or restricted? =

No. Every included function is available free of charge without a license key,
trial period or usage limit. Optional support unlocks no features.

== Changelog ==

= 1.9.1 =
* Use native header/footer template parts on block themes.
* Restrict bulk deletion to verified POST requests before admin output.
* Require POST for saving and single deletion.
* Bound external-player loading time and show a visible fallback on timeout.
* Label episode-selection checkboxes, expose readable seek values, and make audio errors visible.
* Clarify bundled license notices and remove unavailable document references.

= 1.9.0 =

* Generalised episode, archive and sitemap URLs with neutral defaults, filters and legacy redirects.
* Added theme-independent Core SEO metadata while retaining optional Yoast integration.
* Added a privacy-aware lazy MP3 player with play/pause, seek, speed and episode navigation.
* Improved responsive, keyboard, focus and reduced-motion behaviour without theme or Bootstrap assumptions.
* Hardened image, date, length, bulk-delete and single-delete handling in the administration area.
* Added complete POT and en_GB PO/MO catalogues and packaged language loading.
* Removed site-specific seed execution from the public runtime and documented release licensing and third-party inventory.
* Added isolated WordPress/PHP lifecycle, old-path migration, multisite, Plugin Check and browser QA tooling.

= 1.8.0 =

* Renamed the plugin directory, main file, identity and text domain to `scinet-podcast`.
* Added canonical `[scinet_podcast]` shortcodes while retaining legacy aliases and stored data.
* Synchronized the plugin header, version constant, stable tag and release tooling.
* Added strict scalar input handling, provider-host validation and safer bulk deletion hooks.
* Replaced the inline media script with a versioned, translatable admin asset.
* Removed the automatic dataLayer event and customer-specific frontend author, glossary and CTA defaults.
* Made customer-specific editorial seed data opt-in and excluded it from release packages.
* Removed Bootstrap dependencies from plugin-rendered frontend output.
* Added multisite activation handling, persistent-data documentation and release checks.
* Documented external media services, privacy behavior and the fully free feature set.

= 1.7.0 =

* Added further editorial episode data and transcripts.

= 1.6.1 =

* Improved long episode titles and mobile spacing.

== Upgrade Notice ==

= 1.9.0 =

The plugin path changes to `scinet-podcast/scinet-podcast.php`. Activate the
renamed plugin once after replacing the directory. Existing episodes, URLs,
legacy shortcodes and hooks are retained.
