{"id":18255702,"url":"https://github.com/mervick/rhythmbox-telegram","last_synced_at":"2026-02-19T03:12:12.304Z","repository":{"id":195414158,"uuid":"692860322","full_name":"mervick/rhythmbox-telegram","owner":"mervick","description":"Telegram plugin for Rhythmbox: Listen and download music from Telegram directly within Rhythmbox","archived":false,"fork":false,"pushed_at":"2026-02-08T10:55:01.000Z","size":1847,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-08T17:32:29.372Z","etag":null,"topics":["music","music-player","rhythmbox","rhythmbox-plugin","telegram"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mervick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-17T19:54:44.000Z","updated_at":"2026-02-08T10:55:04.000Z","dependencies_parsed_at":"2023-09-17T21:15:10.946Z","dependency_job_id":"7926adb2-ae63-4662-9cde-0ddcd5d44c95","html_url":"https://github.com/mervick/rhythmbox-telegram","commit_stats":{"total_commits":265,"total_committers":1,"mean_commits":265.0,"dds":0.0,"last_synced_commit":"dfe3dbfc92765d752e2136570fffcd90d68dfe76"},"previous_names":["mervick/rhythmbox-telegram"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/mervick/rhythmbox-telegram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mervick%2Frhythmbox-telegram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mervick%2Frhythmbox-telegram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mervick%2Frhythmbox-telegram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mervick%2Frhythmbox-telegram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mervick","download_url":"https://codeload.github.com/mervick/rhythmbox-telegram/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mervick%2Frhythmbox-telegram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29601654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T02:50:40.506Z","status":"ssl_error","status_checked_at":"2026-02-19T02:50:26.316Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["music","music-player","rhythmbox","rhythmbox-plugin","telegram"],"created_at":"2024-11-05T10:18:17.442Z","updated_at":"2026-02-19T03:12:12.290Z","avatar_url":"https://github.com/mervick.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rhythmbox Telegram Music Plugin\n\nRhythmbox-Telegram is a plugin for Rhythmbox that allows you to listen to and download music from Telegram directly within Rhythmbox.\n\n![Telegram playlist in Rhythmbox](screenshots/playlist.png)\n[**More screenshots here**](screenshots)\n\n## Key Features\n\n- **Telegram Integration**: Easily add Telegram channels/groups/chats to Rhythmbox as playlists, simplifying your music browsing experience.\n\n- **Browse Audio Files**: Easily browse, search, and organize audio files shared in Telegram directly from Rhythmbox, ensuring quick and convenient access to your favorite tracks.\n\n- **Listen to Music**: Enjoy audio content from Telegram directly in Rhythmbox, allowing continuous music playback without switching between applications.\n\n- **Download to Library**: Download audio files from Telegram directly to your Rhythmbox library, expanding your music collection with the content you enjoy.\n\nWith Rhythmbox-Telegram, enjoy the convenience of accessing and downloading your favorite Telegram audio content into your music library, transforming how you organize and enjoy your music collection.\n\n## Installation\n\n**Note:** Regardless of the installation method, the plugin depends on TDLib. For architectures other than x64, TDLib must be installed manually.  Refer to the official [TDLib GitHub repository](https://github.com/tdlib/td) for instructions. TDLib for x64 is installed automatically.\n\n### Method 1: Install from Debian Package\n\nFor Debian-like systems, download the latest `.deb` package from the [releases page](https://github.com/mervick/rhythmbox-telegram/releases). Then install it using the following command:\n\n```sh\nsudo dpkg -i rhythmbox-telegram-plugin_*.deb\n```\n\nIf the architecture is different from x64, you can still use the Debian package, but you will need to [install TDLib manually](https://github.com/tdlib/td).\n\n---\n\n### Method 2: Install Using the Installation Script\n\nRun the `install.sh` script from the repository:\n\n```sh\ngit clone https://github.com/mervick/rhythmbox-telegram\nbash rhythmbox-telegram/install.sh\n   ```\n\nThe script will handle the entire installation process, including downloading dependencies, setting up the plugin, and compiling schemas.\n\nIf the architecture is different from x64, you will need to [install TDLib manually](https://github.com/tdlib/td).\n\n---\n\n### Method 3: Manual Installation\n\nDownload the plugin from the repository, install required pip3 libs, copy plugin files to the Rhythmbox plugins folder, then compile GLib schemas:\n\n```sh\n# clone plugin gi\ngit clone https://github.com/mervick/rhythmbox-telegram\n# install required python libs\npip3 install -r \"rhythmbox-telegram/requirements.txt\" -t \"rhythmbox-telegram/lib\"\n# create plugin dir\nmkdir -p ~/.local/share/rhythmbox/plugins/rhythmbox-telegram/\n# copy plugin files\ncp -r rhythmbox-telegram/* ~/.local/share/rhythmbox/plugins/rhythmbox-telegram\n# copy plugin glib schema\nsudo cp rhythmbox-telegram/org.gnome.rhythmbox.plugins.telegram.gschema.xml /usr/share/glib-2.0/schemas/\n# update glib schema\nsudo glib-compile-schemas /usr/share/glib-2.0/schemas/\n```\n\n### Restart Rhythmbox\n\nAfter installing the plugin, if Rhythmbox is open, restart it.\n\n## Activation\n\nAfter installing the plugin, you need to:\n- Activate it in the Rhythmbox settings \n- Obtain a Telegram API ID \n- Authenticate the Telegram user\n\n### Obtaining Telegram API ID\n\nIn order to obtain an API id you need to do the following:\n\n- Log in to your Telegram core: https://my.telegram.org.\n- Go to [API development tools](https://my.telegram.org/apps) and fill out the form.\n- You will get `api_id` and `api_hash` parameters required for user authorization.\n\nMore detailed instructions can be found in the [Telegram documentation](https://core.telegram.org/api/obtaining_api_id)\n\n### Authorization\n\nAfter obtaining the API ID, in the plugin settings, input the received `api_id` and `api_hash`, along with your Telegram user's phone number. Then, press the 'Connect' button. Telegram will send you a code for authorization to any connected Telegram app.\n\n### Adding your music to Rhythmbox\n\nAfter successfully connecting Telegram to Rhythmbox, in the plugin settings, you'll be able to add Telegram chats to listen to your favorite music.\n\n## Telegram API Usage\n\nThe plugin uses the Telegram API strictly for reading purposes.  \n**No write operations are performed**.  \n\nThe following actions are carried out:\n\n* Authorization process\n* Retrieving the chats list\n* Iterating over all messages in chats selected as \"Music Sources\" in the plugin settings (only audio files are searched)\n* Downloading of audio files\n* Getting a public link to a message with an audio file\n\nNo other operations are conducted.\n\n### Full list of API methods and handlers that the plugin uses:\n\n* `setTdlibParameters` - Sets the parameters for TDLib initialization\n* `checkDatabaseEncryptionKey` - Checks the database encryption key for correctness\n* `getAuthorizationState` - Gets the current authorization state\n* `setAuthenticationPhoneNumber` - Sets the phone number of the user and sends an authentication code to the user\n* `checkAuthenticationPassword` - Checks the 2-step verification password for correctness\n* `checkAuthenticationCode` - Checks the authentication code\n* `loadChats` - Loads chats from a chat list\n* `getChatHistory` - Gets messages in a chat\n* `getMessage` - Gets information about a message\n* `downloadFile` - Downloads a file from the cloud\n* `getMessageLink` - Gets an HTTPS link to a message in a chat\n* `updateAuthorizationState` - Listens the user authorization state\n* `updateNewChat` -  Listens when a chat is loaded or created\n\n\n### Audio Loading and Data Retrieving\n\nThe audio file list is fetched in small batches with a 20-second interval (the first few pages are loaded with a 5-second interval) to stay within API quota limits. To ensure a low number of requests, the plugin retrieves the list of files from chats once. Once the playlist is completely loaded, the system checks for new messages every 2 minutes.\nThe plugin caches information about retrieved audio files.  \nThis approach ensures efficient, quota-compliant, and timely updates of new content.  \n\n### Authentication Data\n\nAuthentication data is encrypted and stored within the GNOME Keyring. This ensures that it is securely protected within the GNOME environment.\n\n### Telegram Data\n\nData obtained from Telegram is encrypted using a user-provided encryption key and managed by the official Telegram client [TDLib](https://core.telegram.org/tdlib).  \nThe encrypted database is stored at `~/.local/share/rhythmbox/telegram/*/database`  \nThis database is required for TDLib to work.\n\n### Temporary Audio Files\n\nTemporary audio files are stored at `~/.local/share/rhythmbox/telegram/*/files/music`  \nYou can delete these files at any time.  \nYou can also delete these files through the plugin settings.\n\n### Audio Metadata\n\nWe store audio file metadata in a plain SQLite database.  \nThis includes: chat identifier, message ID of the audio file within the chat, publication date/time, file size, file name, and audio metadata tags.  \nAdditionally, it stores information about loaded chats as segments of message ID ranges, as well as details on hidden and downloaded audio files within the playlist.  \n\nThis database is located at: `~/.local/share/rhythmbox/telegram/*/data.sqlite`\n\nData is loaded  once for each chat. If you delete this database, the information will have to be fetched again.\n\n\n## Contribute\n\nIf you like our plugin, you can support Rhythmbox-Telegram by spreading the word about the plugin and don’t forget to give a star to the repository on GitHub.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmervick%2Frhythmbox-telegram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmervick%2Frhythmbox-telegram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmervick%2Frhythmbox-telegram/lists"}