# Documentation index

How to use: Start with the quickstart and make sure you learn how to find help. Then it’s as you like: go for another general tutorial, or a specific example, pick a basic notion, or some examples from the cookbook. If you’ve understood all you need, just browse the reference and compose your dream stream.

If you downloaded a source tarball of liquidsoap, you may first read the build instructions.

If you are migrating from a previous version, you might want to checkout this page.

## General tutorials

- The book: The Liquidsoap book
- Video presentations: some presentations we did about liquidsoap
- How to find help about operators, settings, server commands, etc.
- Frequently Asked Questions, Troubleshooting
- Quickstart: where anyone should start.
- Complete case analysis: an example that is not a toy.
- Cookbook: contains lots of idiomatic examples.

## Reference

- Script language: A more detailed presentation.
- Core API: The core liquidsoap API
- Extra API: Extra functions and libraries.
- Protocols: List of protocols supported by liquidsoap.
- Settings: The list of available settings for liquidsoap.
- FFmpeg: FFmpeg support documentation.
- Encoding formats: The available formats for encoding outputs.
- Videos streams: Use `liquidsoap` for video streams
- JSON import/export: Importing and exporting language values in JSON.
- Playlist parsers: Supported playlist formats.
- LADSPA plugins: Using LADSPA plugins.
- Database: Support for SQL databases.

## Core

- Basic concepts: sources, clocks and requests.
- Stream contents: what kind of streams are supported, and how.
- Script loading: load several scripts, learn about the script library.
- Execution phases

## Specific tutorials

- Blank detection
- Customize metadata
- Dynamic source creation: dynamically create sources using server requests.
- External decoders: use an external program for decoding audio files.
- External encoders: use an external audio encoding program.
- External streams: use an external program for streaming audio data.
- HLS output: output your stream as HTTP Live Stream.
- HTTP input: relay external streams.
- Harbor input: receive streams from icecast and shoutcast source clients.
- ICY metadata update: manipulate and configure metadata update in Icecast.
- Interaction with the Harbor: interact with a running Liquidsoap using the Harbor server.
- Interaction with the server interact with a running Liquidsoap instance using the telnet server.
- Loudness Normalization: normalize audio data using LUFS or ReplayGain.
- Profiling: profiling your scripts.
- Prometheus reporting: metrics reporting via prometheus.
- Requests-based sources: create advanced sources using requests.
- Seek and cue support: seek and set cue-in and cue-out points in sources.
- Shoutcast output: output to shoutcast.
- Smart crossfading: define custom crossfade transitions.
- Using in production: integrate liquidsoap scripts in a production environment.

## User scripts

- Beets: an example of a music database integration.
- Geekradio
- RadioPi
- Frequence3
- Video with a single static image
- Split a CUE sheet

## Code snippets

- Code example index

## Behind the curtains

- Some presentations and publications explaining the theory underlying Liquidsoap
- OCaml libraries used in Liquidsoap, that can be reused in other projects
- Documentation of some internals of Liquidsoap
- Documentation for previous versions