{"id":13410931,"url":"https://github.com/serenity-rs/songbird","last_synced_at":"2025-04-13T16:11:14.407Z","repository":{"id":39790027,"uuid":"312585508","full_name":"serenity-rs/songbird","owner":"serenity-rs","description":"An async Rust library for the Discord voice API","archived":false,"fork":false,"pushed_at":"2024-09-09T18:23:37.000Z","size":44821,"stargazers_count":386,"open_issues_count":20,"forks_count":109,"subscribers_count":8,"default_branch":"current","last_synced_at":"2024-09-10T11:53:59.461Z","etag":null,"topics":["discord","discord-api","hacktoberfest","rust","voice-support"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serenity-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2020-11-13T13:38:13.000Z","updated_at":"2024-09-09T09:54:22.000Z","dependencies_parsed_at":"2023-02-16T22:00:37.218Z","dependency_job_id":"6541ce7a-861a-4eea-8ee7-11b9e4e2a1a3","html_url":"https://github.com/serenity-rs/songbird","commit_stats":{"total_commits":156,"total_committers":26,"mean_commits":6.0,"dds":0.3141025641025641,"last_synced_commit":"df8ee0ffcad03c26db489c356e183a7e1190b04c"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serenity-rs%2Fsongbird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serenity-rs%2Fsongbird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serenity-rs%2Fsongbird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serenity-rs%2Fsongbird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serenity-rs","download_url":"https://codeload.github.com/serenity-rs/songbird/tar.gz/refs/heads/current","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741198,"owners_count":21154255,"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":["discord","discord-api","hacktoberfest","rust","voice-support"],"created_at":"2024-07-30T20:01:10.279Z","updated_at":"2025-04-13T16:11:14.383Z","avatar_url":"https://github.com/serenity-rs.png","language":"Rust","funding_links":[],"categories":["Misc Resources","Libraries","Rust"],"sub_categories":["Rust"],"readme":"[![docs-badge][]][docs] [![next-docs-badge][]][next-docs] [![build badge]][build] [![guild-badge][]][guild] [![crates.io version]][crates.io link] [![rust badge]][rust link]\n\n# Songbird\n\n![](songbird.png)\n\nSongbird is an async, cross-library compatible voice system for Discord, written in Rust.\nThe library offers:\n * A standalone gateway frontend compatible with [serenity] and [twilight] using the\n `\"gateway\"` and `\"[serenity/twilight]\"` plus `\"[rustls/native]\"` features. You can even run\n driverless, to help manage your [lavalink] sessions.\n * A standalone driver for voice calls, via the `\"driver\"` feature. If you can create\n a `ConnectionInfo` using any other gateway, or language for your bot, then you\n can run the songbird voice driver.\n * Voice receive and RT(C)P packet handling via the `\"receive\"` feature.\n * And, by default, a fully featured voice system featuring events, queues,\n seeking on compatible streams, shared multithreaded audio stream caches,\n and direct Opus data passthrough from DCA files.\n\n## Intents\nSongbird's gateway functionality requires you to specify the `GUILD_VOICE_STATES` intent.\n\n## Codec support\nSongbird supports all [codecs and formats provided by Symphonia] (pure-Rust), with Opus support\nprovided by [audiopus] (an FFI wrapper for libopus).\n\n**By default, *Songbird will not request any codecs from Symphonia*.** To change this, in your own\nproject you will need to depend on Symphonia as well.\n\n```toml\n# Including songbird alone gives you support for Opus via the DCA file format.\n[dependencies.songbird]\nversion = \"0.5\"\nfeatures = [\"builtin-queue\"]\n\n# To get additional codecs, you *must* add Symphonia yourself.\n# This includes the default formats (MKV/WebM, Ogg, Wave) and codecs (FLAC, PCM, Vorbis)...\n[dependencies.symphonia]\nversion = \"0.5\"\nfeatures = [\"aac\", \"mp3\", \"isomp4\", \"alac\"] # ...as well as any extras you need!\n```\n\n## Dependencies\nSongbird needs a few system dependencies before you can use it.\n\n- Opus - Audio codec that Discord uses.\n[audiopus] will use installed libopus binaries if available via pkgconf on Linux/MacOS, otherwise you will need to install cmake to build opus from source.\nThis is always the case on Windows.\nFor Unix systems, you can install the library with `apt install libopus-dev` on Ubuntu or `pacman -S opus` on Arch Linux.\nIf you do not have it installed it will be built for you. However, you will need a C compiler and the GNU autotools installed.\nAgain, these can be installed with `apt install build-essential autoconf automake libtool m4` on Ubuntu or `pacman -S base-devel` on Arch Linux.\n\nThis is a required dependency. Songbird cannot work without it.\n\n- yt-dlp / youtube-dl / (similar forks) - Audio/Video download tool.\nyt-dlp can be installed [according to the installation instructions on the main repo].\nYou can install youtube-dl with Python's package manager, pip, which we recommend for youtube-dl. You can do it with the command `pip install youtube_dl`.\nAlternatively, you can install it with your system's package manager, `apt install youtube-dl` on Ubuntu or `pacman -S youtube-dl` on Arch Linux.\n\nThis is an optional dependency for users, but is required as a dev-dependency. It allows Songbird to download audio/video sources from the Internet from a variety of webpages, which it will convert to the Opus audio format Discord uses.\n\n## Examples\nFull examples showing various types of functionality and integrations can be found in [this crate's examples directory].\n\n## Contributing\nIf you want to help out or file an issue, please look over [our contributor guidelines]!\n\n## Attribution\nSongbird's logo is based upon the copyright-free image [\"Black-Capped Chickadee\"] by George Gorgas White.\n\n[serenity]: https://github.com/serenity-rs/serenity\n[twilight]: https://github.com/twilight-rs/twilight\n[\"Black-Capped Chickadee\"]: https://www.oldbookillustrations.com/illustrations/black-capped-chickadee/\n[lavalink]: https://github.com/freyacodes/Lavalink\n[this crate's examples directory]: https://github.com/serenity-rs/songbird/tree/current/examples\n[our contributor guidelines]: CONTRIBUTING.md\n[codecs and formats provided by Symphonia]: https://github.com/pdeljanov/Symphonia#formats-demuxers\n[audiopus]: https://github.com/lakelezz/audiopus\n[according to the installation instructions on the main repo]: https://github.com/yt-dlp/yt-dlp#installation\n\n[build badge]: https://img.shields.io/github/actions/workflow/status/serenity-rs/songbird/ci.yml?branch=current\u0026style=flat-square\n[build]: https://github.com/serenity-rs/songbird/actions\n\n[docs-badge]: https://img.shields.io/badge/docs-current-4d76ae.svg?style=flat-square\n[docs]: https://serenity-rs.github.io/songbird/current\n\n[next-docs-badge]: https://img.shields.io/badge/docs-next-4d76ae.svg?style=flat-square\n[next-docs]: https://serenity-rs.github.io/songbird/next\n\n[guild]: https://discord.gg/9X7vCus\n[guild-badge]: https://img.shields.io/discord/381880193251409931.svg?style=flat-square\u0026colorB=7289DA\n\n[crates.io link]: https://crates.io/crates/songbird\n[crates.io version]: https://img.shields.io/crates/v/songbird.svg?style=flat-square\n\n[rust badge]: https://img.shields.io/badge/rust-1.74+-93450a.svg?style=flat-square\n[rust link]: https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserenity-rs%2Fsongbird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserenity-rs%2Fsongbird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserenity-rs%2Fsongbird/lists"}