{"id":13634632,"url":"https://github.com/hinto-janai/festival","last_synced_at":"2025-04-04T20:15:55.915Z","repository":{"id":146224816,"uuid":"617976687","full_name":"hinto-janai/festival","owner":"hinto-janai","description":"Music player","archived":false,"fork":false,"pushed_at":"2024-03-27T23:44:31.000Z","size":53320,"stargazers_count":271,"open_issues_count":31,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-11T01:14:44.539Z","etag":null,"topics":["audio","audio-player","cli","daemon","gui","linux","macos","music","music-player","player","rust","shukusai","web","windows"],"latest_commit_sha":null,"homepage":"https://festival.pm","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hinto-janai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-23T13:59:25.000Z","updated_at":"2024-10-09T13:50:15.000Z","dependencies_parsed_at":"2023-12-01T00:23:05.412Z","dependency_job_id":"3a4faf79-9a33-4baa-9eb2-714f9790a38e","html_url":"https://github.com/hinto-janai/festival","commit_stats":{"total_commits":906,"total_committers":1,"mean_commits":906.0,"dds":0.0,"last_synced_commit":"8d7e26d55e7677e3d38d6c51c51683830e9cbd61"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hinto-janai%2Ffestival","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hinto-janai%2Ffestival/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hinto-janai%2Ffestival/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hinto-janai%2Ffestival/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hinto-janai","download_url":"https://codeload.github.com/hinto-janai/festival/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242681,"owners_count":20907134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-player","cli","daemon","gui","linux","macos","music","music-player","player","rust","shukusai","web","windows"],"created_at":"2024-08-02T00:00:27.978Z","updated_at":"2025-04-04T20:15:55.895Z","avatar_url":"https://github.com/hinto-janai.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["Audio and Music"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Festival\n\u003cimg src=\"assets/images/icon/512.png\" width=\"10%\"/\u003e\n\n![CI](https://github.com/hinto-janai/festival/actions/workflows/ci.yml/badge.svg)\n\nFestival is a music player for local album collections.\n\nhttps://github.com/hinto-janai/festival/assets/101352116/586e37e7-762d-4dc6-a9c4-9bdc45396961\n\n\u003c/div\u003e\n\n## Documentation\nSee documentation at https://docs.festival.pm/gui.\n\n## Comparison\nFor a comparison between Festival and other music players, see [`comparison/`](https://github.com/hinto-janai/festival/tree/main/comparison/README.md).\n\n## Build\n\u003cdetails\u003e\n\u003csummary\u003eGeneral Info\u003c/summary\u003e\n\n---\n\nYou need [`cargo`](https://www.rust-lang.org/learn/get-started) and at least `rustc 1.70`.\n\nYou also need to clone the `submodules` that include patched libraries found in [`external/`](https://github.com/hinto-janai/festival/tree/main/external):\n```bash\ngit clone --recursive https://github.com/hinto-janai/festival\n```\n\nThe built binary is found in `target/release/festival[.exe]` by default.\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eLinux\u003c/summary\u003e\n\n---\n\nThe pre-compiled Linux binaries are built on Ubuntu 20.04, you'll need these packages to build:\n```bash\nsudo apt install build-essential pkg-config libdbus-1-dev libpulse-dev libgtk-3-dev\n```\n\nTo build the latest _stable_ release:\n```bash\ngit checkout gui-v1.4.0\ncargo build --release\n```\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003emacOS\u003c/summary\u003e\n\n---\n\nTo build the latest _stable_ release:\n```bash\ngit checkout gui-v1.4.0\ncargo build --release\n```\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWindows\u003c/summary\u003e\n\n---\n\nTo build the latest _stable_ release:\n```bash\ngit checkout gui-v1.4.0\ncargo build --release\n```\n\nThere is a [`build.rs`](https://github.com/hinto-janai/festival/blob/main/gui/build.rs) file in `gui/` solely for Windows-specific things:\n\n1. It sets the icon in `File Explorer`\n2. It sets some miscellaneous metadata\n3. It statically links `VCRUNTIME140.dll` (the binary will not be portable without this)\n\n\n---\n\n\u003c/details\u003e\n\n## License\nFestival is licensed under the [MIT License](https://github.com/hinto-janai/festival/blob/main/LICENSE).\n\nHowever, its dependency tree includes many other licenses.\n\n## FAQ\n\u003cdetails\u003e\n\u003csummary\u003eCompilations\u003c/summary\u003e\n\n---\n\nFestival does not directly support compilations (a single album, but with various artists) at the moment.\n\nIt will still load the album, but it will be spread out for each different artist.\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMissing music\u003c/summary\u003e\n\n---\n\nYour audio files must have proper metadata for Festival to detect it.\n\nThe required tags are:\n- Artist\n- Album\n\nIf the song title tag does not exist, the filename will be used instead.\n\nFor more details on metadata related errors, start Festival in a console:\n```bash\n./festival\n```\nand look for yellow `W` (Warn) log messages during a `Collection` reset.\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMissing album art\u003c/summary\u003e\n\n---\n\nIf your audio file has embedded album art, Festival will use it.\n\nIf no embedded album art metadata is found, Festival will:\n- Search in the same directory as the file for an image file\n- Search in the file's parent directory for an image file\n\nIf an image file is not found, a default `?` album art will be used.\n\nThe supported image file formats are:\n- `JPG/JPEG`\n- `PNG`\n- `BMP`\n- `ICO`\n- `TIFF`\n- `WebP`\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMissing date\u003c/summary\u003e\n\n---\n\nFestival will look for a date metadata tag generally resembling the `YYYY-MM-DD` format.\n\nSome examples of dates that will work:\n- `2022-12-31` (YYYY-MM-DD)\n- `2022` (YYYY)\n- `31-12-2022` (DD-MM-YYYY)\n- `12-31-2022` (MM-DD-YYYY)\n- `2022/12/31` (YYYY-MM-DD but with a different separator)\n- `20221231` (YYYY-MM-DD but with no separator)\n- `2022-1-1` (YYYY-MM-DD)\n- `2022-01-01` (YYYY-MM-DD)\n\nAs long as the year exists, the date will be parsed correctly. This means `MM-DD` metadata will be not parsed, so:\n- `12-31` (MM-DD)\n- `31-12` (DD-MM)\n\nwill not work. These will show up as `????-??-??` in Festival.\n\nTo fix your music metadata, see below for metadata editors.\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMetadata editing\u003c/summary\u003e\n\n---\n\nFestival is only a music player, not a metadata editor.\n\nSome metadata editors you could use:\n\n- [`Kid3`](https://kid3.kde.org)\n- [`mp3tag`](https://www.mp3tag.de/en)\n- [`puddletag`](https://docs.puddletag.net)\n- [`MusicBrainz Picard`](https://picard.musicbrainz.org)\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eSupported audio codecs\u003c/summary\u003e\n\n---\n\nThe supported audio codecs are:\n- `AAC`\n- `ADPCM`\n- `ALAC`\n- `FLAC`\n- `MP3/MP2/MP1/MPA/MPEG`\n- `Ogg/Vorbis`\n- `Opus`\n- `WAV`\n- `WavPack`\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSupported metadata formats\u003c/summary\u003e\n\n---\n\n| Format                | Status    |\n|-----------------------|-----------|\n| ID3v1                 | Great     |\n| ID3v2                 | Great     |\n| ISO/MP4               | Great     |\n| RIFF                  | Great     |\n| Vorbis comment (FLAC) | Perfect   |\n| Vorbis comment (OGG)  | Perfect   |\n\n---\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhinto-janai%2Ffestival","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhinto-janai%2Ffestival","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhinto-janai%2Ffestival/lists"}