Syng is an all-in-one karaoke software, consisting of a <em>backend server</em>, a <em>web frontend</em> and a <em>playback client</em>. Karaoke performers can search a library using the web frontend, and add songs to the queue. The playback client retrieves songs from the backend server and plays them in order.
<em>YouTube</em>. The backend server queries YouTube for the song and forwards the URL to the playback client. The playback client then downloads the video from YouTube for playback.
</li>
<li>
<em>S3</em>. The backend server holds a list of all file paths accessible through the s3 storage, and forwards the chosen path to the playback client. The playback client then downloads the needed files from the s3 for playback.
</li>
<li>
<em>Files</em>. Same as S3, but all files reside locally on the playback client.
The playback client uses <code>mpv</code> for playback and can therefore play a variety of file formats, such as <code>mp3+cdg</code>, <code>webm</code>, <code>mp4</code>, ...