{"id":18656001,"url":"https://github.com/wh0o7/telegrammusicstatus","last_synced_at":"2026-04-12T23:25:46.286Z","repository":{"id":185946657,"uuid":"674371407","full_name":"wh0o7/TelegramMusicStatus","owner":"wh0o7","description":"App for autostatus of music in Telegram","archived":false,"fork":false,"pushed_at":"2024-08-13T10:16:19.000Z","size":285,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T14:15:43.887Z","etag":null,"topics":["music-status","telegram","telegram-status","telegrambio"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/wh0o7/telegrammusicstatus/tags","language":"C#","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/wh0o7.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-08-03T19:31:57.000Z","updated_at":"2025-01-15T11:03:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"8591747e-f737-4bd4-b9a3-892bcf9841f7","html_url":"https://github.com/wh0o7/TelegramMusicStatus","commit_stats":null,"previous_names":["andruxxa7/telegrammusicstatus"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh0o7%2FTelegramMusicStatus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh0o7%2FTelegramMusicStatus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh0o7%2FTelegramMusicStatus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh0o7%2FTelegramMusicStatus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wh0o7","download_url":"https://codeload.github.com/wh0o7/TelegramMusicStatus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253754344,"owners_count":21958843,"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":["music-status","telegram","telegram-status","telegrambio"],"created_at":"2024-11-07T07:21:23.303Z","updated_at":"2026-04-12T23:25:46.276Z","avatar_url":"https://github.com/wh0o7.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TelegramMusicStatus 🎵\n\n[![en](https://img.shields.io/badge/lang-en-blue.svg)](https://github.com/wh0o7/TelegramMusicStatus/blob/main/README.md) [![ru](https://img.shields.io/badge/lang-ru-red.svg)](https://github.com/wh0o7/TelegramMusicStatus/blob/main/README.ru-ru.md)\n\n## Overview 🎶\n\nTelegramMusicStatus updates your **Telegram profile bio** with the track you are playing. It supports **Spotify**, **Last.fm**, and **Yandex Music**. When nothing is playing you can fall back to saved bios and use a slower **wait** polling interval.\n\n**AIMP:** older releases integrated with the AIMP player via a WebSocket plugin ([CurrentlyPlayingInfoAIMPPlugin](https://github.com/wh0o7/CurrentlyPlayingInfoAIMPPlugin) / submodule). That path is **no longer supported** in this repository — use Spotify, Last.fm, or Yandex Music instead.\n\n**Requirements:** [.NET 10 SDK](https://dotnet.microsoft.com/download). SDK version is pinned in [`global.json`](global.json).\n\n## Installation 🚀\n\n**Telegram through a proxy:** [WTelegramClient’s EXAMPLES](https://github.com/wiz0u/WTelegramClient/blob/master/EXAMPLES.md#use-a-proxy-or-mtproxy-to-connect-to-telegram) describe two approaches — this app supports both:\n\n1. **`MTProxyUrl` (simplest)** — set it to a Telegram MTProto proxy URL (`https://t.me/proxy?server=...\u0026port=...\u0026secret=...`). WTelegramClient handles this natively (`Client.MTProxyUrl`).\n2. **`Socks5`** — same as upstream: *“SOCKS/HTTPS proxies can be used through the `client.TcpHandler` delegate and a proxy library like [StarkSoftProxy](https://www.nuget.org/packages/StarkSoftProxy/) or [xNetStandard](https://www.nuget.org/packages/xNetStandard/).”* This project uses **`StarkSoftProxy`** (`Socks5ProxyClient`) and your `Socks5` block in `config.json`.\n\nIf both are set, **`MTProxyUrl` takes precedence** and `Socks5` is ignored. Omit both for a direct connection.\n\n1. Create `config.json` next to the executable (see the configuration example below). Add `MTProxyUrl` and/or `Socks5` only if you need a proxy.\n\n2. Run the app (`dotnet run` in `TelegramMusicStatus` or a published build). Only configured sources are used.\n\n## Configuration Example 🎛️\n\nJSON uses **PascalCase** property names (`System.Text.Json`). Optional objects can be omitted.\n\n```json\n{\n  \"SpotifyApp\": {\n    \"ClientId\": \"your_client_id\",\n    \"ClientSecret\": \"your_client_secret\"\n  },\n  \"SpotifyAccount\": {\n    \"BearerToken\": \"your_spotify_bearer_token\",\n    \"Response\": null\n  },\n  \"TelegramAccount\": {\n    \"ApiId\": \"your_api_id\",\n    \"ApiHash\": \"your_api_hash\",\n    \"PhoneNumber\": \"your_phone_number\",\n    \"MfaPassword\": \"your_cloud_password_if_2fa\",\n    \"MTProxyUrl\": null,\n    \"Socks5\": {\n      \"Host\": \"127.0.0.1\",\n      \"Port\": 1080,\n      \"Username\": null,\n      \"Password\": null\n    }\n  },\n  \"Settings\": {\n    \"IsDeployed\": true,\n    \"IsDefaultBioOnPause\": false,\n    \"Interval\": 45,\n    \"WaitInterval\": 90\n  },\n  \"UserBio\": [\"Default bio line 1\", \"Default bio line 2\"],\n  \"PlayingIndicator\": \"🎵 \",\n  \"LastFmApi\": {\n    \"ApiKey\": \"LASTFM_API_KEY\",\n    \"Username\": \"LASTFM_USERNAME\"\n  },\n  \"YandexMusicAccount\": {\n    \"Token\": \"YANDEX_TOKEN\"\n  }\n}\n```\n\n- `SpotifyApp` 😎: Spotify API app credentials (also for **SpotifyBearerTokenGetter**). The main app still expects this block; use placeholders if you only use other sources.\n\n- `SpotifyAccount` 🎵: Bearer token and/or OAuth `Response`. Use `\"Response\": null` for token-only mode.\n\n- `TelegramAccount` 💬: `ApiId`, `ApiHash`, phone; `MfaPassword` is the Telegram cloud password if 2FA is enabled. Optional: `MTProxyUrl` (MTProto proxy URL) or `Socks5` — see **Installation** above.\n\n- `Settings` ⚙️: `Interval` — poll interval in seconds (10–300; out-of-range falls back to ~30s). `WaitInterval` — seconds between checks in wait mode when idle (20–600). `IsDeployed` / `IsDefaultBioOnPause` control pause prompts and resetting bio from `UserBio`.\n\n- `UserBio` / `PlayingIndicator`: optional default bios and prefix for the track line.\n\n- `LastFmApi` / `YandexMusicAccount`: optional integrations.\n\n## Spotify Application Registration 🎶\n\nTo blend in with Spotify, create an app on the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/applications). Get your Client ID and Client Secret for `SpotifyApp` setup.\n\n## Last.fm Application Registration 🎵\n\nTo integrate with Last.fm, you'll need to create an application on the [Last.fm Developer Account Registration](https://www.last.fm/api/account/create) page. Once registered, you'll receive your API key for `Last.fm` setup. This key will allow your application to access Last.fm's API for various music-related functionalities.\n\n## Telegram Application Registration 💬\n\nCreate an app on [my.telegram.org](https://my.telegram.org/auth) and use `ApiId` and `ApiHash` in `TelegramAccount`.\n\n## Usage 🎉\n\n1. Fill in `config.json`.\n\n2. Run **TelegramMusicStatus** (and **SpotifyBearerTokenGetter** when you need a new Spotify token).\n\n3. Your Telegram bio updates from the first source that reports \"now playing\".\n\n## Contributing 🤝\n\nOpen to suggestions! Feel free to raise issues or make pull requests on [GitHub](https://github.com/wh0o7/TelegramMusicStatus/issues).\n\n## Questions or Feedback? 🤔\n\nIf you have any questions or want to provide feedback, you can reach out to me in the [wh0o7 heaven chat](https://t.me/+D-T_xElzA003Nzcy). Let's make the project even better together! 🎵🎉\n\n## Used Libraries 📚\n\n- [WTelegramClient](https://github.com/wiz0u/WTelegramClient) — Telegram MTProto client\n- [StarkSoftProxy](https://www.nuget.org/packages/StarkSoftProxy/) — SOCKS5 via `TcpHandler` when `Socks5` is set\n- [SpotifyAPI-NET](https://github.com/JohnnyCrazy/SpotifyAPI-NET) — Spotify Web API\n- [Yandex.Music.Api](https://github.com/K1llMan/Yandex.Music.Api) — Yandex Music API\n- [Last.fm](https://github.com/avatar29A/Last.fm) — Last.fm client\n- [Improved Console](https://github.com/litolax/Improved-Console) — console logging helpers\n\n## License 📄\n\nThis project rocks the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh0o7%2Ftelegrammusicstatus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwh0o7%2Ftelegrammusicstatus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh0o7%2Ftelegrammusicstatus/lists"}