# Svelte Podcast A collection of tools for building podcast websites and tools with Svelte or SvelteKit. | Version | License | Status | | :-------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------: | | [![npm](https://img.shields.io/npm/v/svelte-podcast)](https://www.npmjs.com/package/svelte-podcast) | [![npm](https://img.shields.io/npm/l/svelte-podcast)](https://www.npmjs.com/package/svelte-podcast) | ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/olliejt/svelte-podcast/publish.yml) | ## What's inside? - ๐Ÿ”Š Load and play audio files via URL or local files - ๐Ÿ”ƒ Navigate via client-side routing while audio continues to play - ๐ŸŽ›๏ธ Simpler control over audio playback: - Seek to a specific time - skip forward ๏นข backward - play ๏นข pause - mute ๏นข unmute - ๐Ÿ›Ÿ Save and load a users progress for each episode in localStorage - ๐Ÿ’พ Save and load a users preferences (like playback speed) in localStorage - ๏นข volume - ๏นข playback speed - ๐Ÿ–ผ๏ธ Inject episode metadata into the audio store for ea **Roadmap** In no particular order, here are some of the things I'm confident will be added to this library: - โ˜ Podcast player component utilities - โ˜ Pre-built player component - โ˜ RSS Feed parsing - โ˜ Looping segments of an episode - [And more ideas being discussed](https://github.com/OllieJT/svelte-podcast/labels/feature) ## Docs > **Warning** > This project is in early development. The docs are not yet complete and the API is likely to change before 1.0.0. #### Install ```bash # with npm npm install svelte-podcast # with yarn yarn add svelte-podcast # with pnpm pnpm add svelte-podcast ``` You must add one instance of the `` to your app. This should be places as high as possible, ideally in your root `+layout,svelte` file. ```html ``` #### Basic usage You will likely be interacting with svelte-podcast via one of the stores it exports. ```html ``` #### `audio` store ##### `subscribe` ```html ``` ##### methods ###### play / pause `audio.play()` to play the currently loaded audio, or `audio.play("toggle")` to toggle play/pause. `audio.pause()` to pause the currently loaded audio, or `audio.pause("toggle")` to toggle play/pause. ###### mute / unmute `audio.mute()` to mute the audio for the `