Ascend Media RPC connects your Android TV media playback to Discord Rich Presence.
Show what you are watching from Stremio or Wako directly on Discord with live titles, artwork, playback progress, timestamps, custom branding, Smart Skip status, and a real-time local telemetry dashboard.
- What Is Ascend Media RPC?
- What Does RPC Mean?
- Core Features
- Discord Community
- How It Works
- Artwork Examples
- Animated Network Icons with Nuvio
- Requirements
- Quick Start
- Installation
- What
run.batDoes - Android TV Setup
- Connection Methods
- Configuration
- Example
config.json - API Keys and Providers
- Using with Stremio
- Using with Wako
- Dashboard
- Customization
- Troubleshooting
- Security and Privacy
- Built With
- Credits
- Disclaimer
- Support
Ascend Media RPC is a local Windows application that bridges your Android TV media playback with Discord Rich Presence.
When you play something in Stremio or Wako on Android TV, Ascend Media RPC detects the playback activity, enriches it with metadata and artwork, and updates your Discord status in real time.
It can display:
- Movie, show, season, and episode information
- Playback state
- Elapsed or remaining time
- Posters, backdrops, season art, and episode thumbnails
- Custom Discord branding text
- Small playback, app, network, or device icons
- Smart Skip status
- Real-time telemetry in a local browser dashboard
Ascend Media RPC is designed to make Android TV playback feel more connected, polished, and customizable.
Need help, want updates, or want to hang out around the broader Cxsmo-ai projects?
Main site:
https://DeepAscension.netSupport site:
https://throne.com/cxsmoJoin the Discord for project support, release updates, setup help, and community discussion:
https://discord.gg/njSKPUQtFaGitHub READMEs do not allow live Discord embeds, iframes, or scripts. For live member/online counts, enable the Discord server widget and add a Shields.io Discord badge using the server ID.
In this project, RPC means:
Rich Presence ClientA Rich Presence Client connects to Discord and updates your profile activity with live, detailed information.
Instead of Discord only showing that you are online, Ascend Media RPC can show what you are currently watching.
Example Discord status:
Watching Interstellar
1h 12m remaining
on StremioFlow:
Stremio / Wako
โ
Ascend Media RPC
โ
Discord Rich PresenceOfficial Discord Rich Presence documentation:
https://docs.discord.com/developers/platform/rich-presence- Built-in ADB tooling
- No manual ADB installation required
- No manual platform-tools setup required
- Auto IP scanning
- Dashboard-based device scanner
- Manual IP fallback
- Android TV and Google TV support
- NVIDIA Shield support
- Chromecast with Google TV support
- Other Android-based TV device support
- Stremio playback detection
- Wako playback detection
- Playback state tracking
- Progress tracking when available
- Local network connection support
- Device reconnect support
- First-time debugging permission support
- Live Discord activity updates
- Movie status support
- TV show status support
- Season and episode display
- Custom branding text
- Elapsed time display
- Remaining time display
- Poster artwork support
- Backdrop artwork support
- Season artwork support
- Episode thumbnail support when available
- Small icon modes
- Playback state icons
- App, network, and device icon modes
- Automatic activity refresh when playback changes
- Status clearing or refreshing when playback stops
- Designed for Discord desktop activity status
Ascend Media RPC includes a local web dashboard for monitoring and control.
Default dashboard URL:
http://localhost:5466The dashboard can show:
- Android TV connection status
- Device/IP scanner
- Selected device
- Current app
- Current playback metadata
- Playback state
- Playback progress
- Artwork preview
- Discord RPC status
- Skip status
- Smart Skip HUD
- Provider and metadata status
Ascend Media RPC includes a multi-source artwork system designed to improve Discord and dashboard visuals.
Supported artwork types may include:
- Movie posters
- TV show posters
- Season posters
- Episode thumbnails
- Backdrops
- Logos
- Rating badges
- Provider-enhanced posters
- Fallback posters
Artwork providers include:
- EasyRatingsDB
- Top Posters
- TMDB fallback artwork
Ascend Media RPC includes a Smart Skip pipeline that can use multiple providers to detect or expose skippable media segments.
Supported skip categories may include:
- Intros
- Outros
- Recaps
- Credits
- Anime openings
- Anime endings
- Jump scares
- Provider-specific skip segments
Supported providers include:
- AniSkip
- IntroDB
- Tidb
- SkipMe
- VideoSkip
- NotScare
NotScare support is designed for horror content.
It can help expose jump scare information through the Smart Skip pipeline and dashboard HUD.
Useful for:
- Horror movies
- Horror shows
- Jump scare warnings
- Jump scare skip logic
- Dashboard alerts
Android TV / Google TV
โ
Stremio or Wako playback
โ
Ascend Media RPC built-in ADB tooling
โ
Playback and app telemetry
โ
Metadata, artwork, ratings, and skip providers
โ
Discord Rich Presence + local dashboardAscend Media RPC runs locally on your Windows PC.
It communicates with your Android TV over your local network using built-in ADB tooling. You do not need to manually install ADB or run ADB commands.
Ascend Media RPC can:
- Scan your local network for Android TV devices
- Connect automatically using Auto IP mode
- Let you choose a device from the dashboard scanner
- Detect Stremio or Wako playback
- Fetch metadata and artwork from supported providers
- Update Discord Rich Presence
- Display live telemetry in the local dashboard
Ascend Media RPC can use premium artwork providers to create cleaner, richer visuals for Discord Rich Presence and the local dashboard.
| EasyRatingsDB Example | Top Posters Example |
|
|
These examples show how Ascend Media RPC can enhance media artwork with generated posters, rating overlays, clean layouts, and dashboard-ready visuals.
The example images should be placed in the repository root, at the same level as
README.md.
Expected repo layout:
Ascend-Media-RPC/
โโ README.md
โโ ERDB Example.png
โโ Top Poster Example.png
โโ config.json
โโ run.bat
โโ src/
โโ ...Ascend Media RPC can use Nuvio community GIF covers as animated Discord small icons for streaming networks. This makes the small badge show a matching animated network icon when the show metadata says it is from Netflix, Paramount+, Prime Video, Hulu, Disney+, HBO Max, and similar providers.
Demo animated WebP:
Links:
https://nuvioapp.space/
https://nuvioapp.space/covers?format=gif&sort=popularSimple setup:
- Sign up or sign in at Nuvio.
- Open the local Ascend Media RPC dashboard.
- Set the small icon or badge mode to the Nuvio network GIF option.
- Enable Nuvio Network GIFs.
- Enter your Nuvio email and password in the Nuvio login fields.
- Save settings and restart or let the next Discord update refresh the icon.
How the Nuvio login works:
- Create a Nuvio account or sign in at
https://nuvioapp.space/. - Use the same email and password in the Ascend Media RPC dashboard.
- Ascend Media RPC logs in for you and uses the session to search community GIF covers.
- If you change your Nuvio password, update it in the dashboard too.
Notes:
401in the log means the Nuvio login failed, expired, or needs the email/password saved again.- The password field is saved hidden in the dashboard. Enter a new password to replace it.
Paramount+is searched asParamount +,Paramount, andParamount+so it can match the community upload names.- If no animated GIF is found, Ascend Media RPC falls back to the normal static network logo.
wsrv.nlis used for static PNG resizing only. Animated GIFs are handled withoutwsrv.nlbecause it does not preserve animation.
Before using Ascend Media RPC, you need:
- Windows PC
- Discord desktop app installed and running
- Android TV, Google TV, NVIDIA Shield, Chromecast with Google TV, or another Android-based streaming device
- Stremio or Wako installed on the Android TV
- PC and Android TV on the same local network
- Developer Options enabled on the Android TV
- ADB, Network Debugging, or Wireless Debugging enabled on the Android TV
- Optional API keys for artwork, metadata, ratings, and skip features
You do not need to manually install ADB.
Ascend Media RPC includes its own ADB tooling and can scan/connect automatically.
- Download or clone this repository.
- Enable Developer Options on your Android TV.
- Enable ADB, Network Debugging, or Wireless Debugging.
- Open
config.json. - Enable Auto IP scanning:
"auto_ip": true- Double-click:
run.bat- Open the dashboard:
http://localhost:5466- Use Auto IP or the dashboard scanner to connect to your Android TV.
- Start playback in Stremio or Wako.
- Watch Discord Rich Presence update automatically.
- Click Code
- Click Download ZIP
- Extract the ZIP somewhere easy to access, for example:
C:\Ascend-Media-RPC- Open the extracted folder.
- Edit
config.json. - Double-click
run.bat.
git clone https://github.com/Cxsmo-ai/Ascend-Media-RPC.git
cd Ascend-Media-RPCThen edit:
config.jsonAnd run:
run.batrun.bat is the main launcher for Ascend Media RPC.
It can:
- Prepare the local environment
- Install required dependencies
- Start the Ascend controller
- Use the built-in ADB tooling
- Scan for Android TV devices
- Connect to your selected Android TV
- Start Discord Rich Presence updates
- Start or serve the local dashboard
You do not need a separate setup script.
Ascend Media RPC needs Android TV debugging enabled so it can communicate with your device locally.
You do not need to type ADB commands manually.
Official Android ADB documentation:
https://developer.android.com/tools/adbThis link is provided for reference only. Ascend Media RPC handles ADB internally.
On your Android TV:
- Open Settings
- Go to System, Device Preferences, or About
- Find Android TV OS build, Build, or Build number
- Click it about 7 times
- You should see a message similar to:
You are now a developer!Developer Options are now enabled.
Menu names may vary depending on your device.
Go to:
Settings > System > Developer optionsEnable whichever debugging option your device provides:
ADB debugging
Network debugging
Wireless debugging
USB debuggingFor Ascend Media RPC, network or wireless debugging is preferred because the app connects over your local network.
The first time Ascend Media RPC connects, your Android TV may show a permission prompt.
It may say:
Allow USB debugging?Or:
Allow network debugging?Select:
Always allow from this computerThen select:
AllowAfter allowing it once, Ascend Media RPC should be able to reconnect automatically later.
Ascend Media RPC can connect to your Android TV in three ways.
Recommended order:
- Auto IP scanning
- Dashboard device scanner
- Manual IP fallback
Open:
config.jsonEnable Auto IP:
"auto_ip": trueExample:
{
"auto_ip": true,
"dashboard_port": 5466,
"rpc_branding": "on Stremio",
"rpc_large_image_mode": "season",
"rpc_time_display": "remaining",
"wako_mode": false
}Auto IP mode scans your local network for compatible Android TV devices and attempts to connect automatically.
This is the easiest option if:
- Your TV and PC are on the same network
- You mainly use one Android TV device
- You do not want to enter an IP address manually
- Your TV IP address changes sometimes
Start Ascend Media RPC:
run.batOpen:
http://localhost:5466Use the dashboard scanner to search for Android TV devices on your network.
This is useful if:
- You do not know your Android TV IP
- Your TV IP changes often
- You have multiple Android TV devices
- You want to choose the device visually
- Auto IP finds more than one device
Use manual IP only if Auto IP or the dashboard scanner does not find your Android TV.
To find your Android TV IP:
Android TV Settings > Network & InternetSelect your Wi-Fi or Ethernet network and look for the IP address.
Example:
192.168.1.50Then open config.json and set:
"adb_host": "192.168.1.50"Example manual configuration:
{
"auto_ip": false,
"adb_host": "192.168.1.50",
"dashboard_port": 5466,
"rpc_branding": "on Stremio",
"rpc_large_image_mode": "season",
"rpc_time_display": "remaining",
"wako_mode": false
}Tip: If you use manual IP, set a static IP or DHCP reservation for your Android TV in your router settings.
Open:
config.jsonCommon options:
| Config Key | Description | Example |
|---|---|---|
auto_ip |
Enables automatic Android TV discovery | true |
adb_host |
Optional manual Android TV IP fallback | "192.168.1.50" |
dashboard_port |
Local dashboard port | 5466 |
rpc_branding |
Text shown in Discord status | "on Stremio" |
rpc_large_image_mode |
Preferred Discord artwork mode | "season" |
rpc_small_icon_mode |
Preferred Discord small icon mode | "content_network_gif" |
rpc_time_display |
Shows remaining or elapsed time | "remaining" |
wako_mode |
Enables Wako detection mode | false |
tmdb_api_key |
TMDB API key | "YOUR_TMDB_API_KEY" |
erdb_token |
EasyRatingsDB token | "YOUR_ERDB_TOKEN" |
trakt_client_id |
Trakt client ID | "YOUR_TRAKT_CLIENT_ID" |
mal_client_id |
MyAnimeList client ID | "YOUR_MAL_CLIENT_ID" |
top_posters_api_key |
Top Posters API key | "YOUR_TOP_POSTERS_API_KEY" |
nuvio_covers_enabled |
Enables animated Nuvio network icons | true |
nuvio_covers_email |
Nuvio account email for community GIF covers | "you@example.com" |
nuvio_covers_password |
Nuvio account password for community GIF covers | "YOUR_NUVIO_PASSWORD" |
{
"auto_ip": true,
"adb_host": "",
"dashboard_port": 5466,
"rpc_branding": "on Stremio",
"rpc_large_image_mode": "season",
"rpc_small_icon_mode": "content_network_gif",
"rpc_time_display": "remaining",
"wako_mode": false,
"tmdb_api_key": "YOUR_TMDB_API_KEY",
"erdb_token": "YOUR_ERDB_TOKEN",
"trakt_client_id": "YOUR_TRAKT_CLIENT_ID",
"mal_client_id": "YOUR_MAL_CLIENT_ID",
"top_posters_api_key": "YOUR_TOP_POSTERS_API_KEY",
"nuvio_covers_enabled": true,
"nuvio_covers_email": "you@example.com",
"nuvio_covers_password": "YOUR_NUVIO_PASSWORD",
"nuvio_covers_base_url": "https://nuvioapp.space",
"nuvio_covers_orientation": "all"
}API keys are optional, but they unlock better artwork, metadata, ratings, posters, and skip features.
You do not need every key for Ascend Media RPC to launch. Adding more keys improves coverage and quality.
TMDB is useful for movie/show metadata and fallback artwork.
Config field:
"tmdb_api_key": "YOUR_TMDB_API_KEY"Links:
https://www.themoviedb.org/settings/api
https://developer.themoviedb.org/docs/getting-startedBasic steps:
- Create or log in to your TMDB account.
- Open account settings.
- Go to the API section.
- Create or request an API key.
- Copy the key.
- Paste it into
config.json.
EasyRatingsDB can provide high-quality generated artwork and rating-focused media visuals.
Ascend Media RPC can use EasyRatingsDB artwork for richer Discord cards and better dashboard previews.
Example output:
Useful for:
- Posters
- Backdrops
- Logos
- Thumbnails
- Rating badges
- Addon-style media artwork
- Better dashboard visuals
- Better Discord Rich Presence images
Config field:
"erdb_token": "YOUR_ERDB_TOKEN"Links:
https://easyratingsdb.com/
https://easyratingsdb.com/configurator
https://easyratingsdb.com/docsBasic steps:
- Open EasyRatingsDB.
- Open the configurator/workspace.
- Register or log in if needed.
- Create or restore your workspace.
- Copy your token or config token.
- Paste it into
config.json.
Top Posters provides modern generated posters with rating badges and streaming-style layouts.
Ascend Media RPC can use Top Posters artwork to give Discord Rich Presence and the dashboard a more polished streaming-app style.
Example output:
Useful for:
- High-resolution posters
- Movie posters
- TV show posters
- Season posters
- Rating overlays
- Trend indicators
- Modern streaming visuals
Config field:
"top_posters_api_key": "YOUR_TOP_POSTERS_API_KEY"Links:
https://api.top-streaming.stream/
https://api.top-streaming.stream/user/register
https://api.top-streaming.stream/faq
https://api.top-streaming.stream/apiBasic steps:
- Open the Top Posters registration page.
- Create an account.
- Open your dashboard.
- Copy your API key.
- Paste it into
config.json.
Nuvio provides community-uploaded GIF covers that can be used as animated Discord small icons for network badges.
Use this when you want the small icon beside your Discord activity to show an animated Netflix, Paramount+, Prime Video, Hulu, Disney+, HBO Max, or similar network badge.
Config fields:
"rpc_small_icon_mode": "content_network_gif",
"nuvio_covers_enabled": true,
"nuvio_covers_email": "you@example.com",
"nuvio_covers_password": "YOUR_NUVIO_PASSWORD"Links:
https://nuvioapp.space/
https://nuvioapp.space/covers?format=gif&sort=popularBasic steps:
- Create or sign in to your Nuvio account.
- Open the Nuvio covers page.
- Enter your Nuvio email and password in the dashboard Nuvio login fields.
- Select the Nuvio/network GIF small icon mode.
- Save settings.
If a GIF is not found for the current network, Ascend Media RPC falls back to the normal static network logo.
Trakt can be used for extra movie/show metadata or watch-related integrations.
Config field:
"trakt_client_id": "YOUR_TRAKT_CLIENT_ID"Links:
https://trakt.tv/oauth/applications
https://trakt.tv/apps
https://trakt.docs.apiary.io/Basic steps:
- Log in to Trakt.
- Open OAuth Applications.
- Create a new application.
- Copy the Client ID.
- Paste it into
config.json.
MyAnimeList can be used for anime-related metadata.
Config field:
"mal_client_id": "YOUR_MAL_CLIENT_ID"Link:
https://myanimelist.net/apiconfigBasic steps:
- Log in to MyAnimeList.
- Open the API config page.
- Create an API client.
- Copy the Client ID.
- Paste it into
config.json.
For Stremio, set:
"wako_mode": falseRecommended connection setting:
"auto_ip": trueThen:
- Enable debugging on your Android TV.
- Start Ascend Media RPC with
run.bat. - Open the dashboard:
http://localhost:5466- Let Auto IP connect, or choose your TV using the dashboard scanner.
- Open Stremio on your Android TV.
- Start playing a movie or episode.
- Discord Rich Presence should update automatically.
For Wako, set:
"wako_mode": trueRecommended connection setting:
"auto_ip": trueThen:
- Enable debugging on your Android TV.
- Start Ascend Media RPC with
run.bat. - Open the dashboard:
http://localhost:5466- Let Auto IP connect, or choose your TV using the dashboard scanner.
- Open Wako on your Android TV.
- Start playback.
- Discord Rich Presence and dashboard telemetry should update automatically.
Wako mode uses dedicated detection because Wako may expose playback information differently than Stremio.
The dashboard is the local control center for Ascend Media RPC.
Default URL:
http://localhost:5466The dashboard may show:
- Android TV connection status
- Device/IP scanner
- Selected Android TV device
- Current playback app
- Current title
- Playback state
- Playback progress
- Artwork preview
- Discord RPC status
- Skip status
- Smart Skip HUD
- Provider and metadata status
If you change the dashboard port:
"dashboard_port": 8080Then open:
http://localhost:8080Controls the text shown in your Discord status.
"rpc_branding": "on Stremio"Examples:
"rpc_branding": "on Android TV""rpc_branding": "with Ascend""rpc_branding": "on Wako"Controls which artwork type Discord should prefer.
"rpc_large_image_mode": "season"Common artwork modes may include:
season
show
episode
poster
backdropUse the values supported by your current app version.
Controls whether Discord shows remaining or elapsed time.
"rpc_time_display": "remaining"Common options:
remaining
elapsedControls the local dashboard port.
"dashboard_port": 5466Default dashboard:
http://localhost:5466Check that:
- Android TV is turned on
- Android TV is awake
- PC and Android TV are on the same network
- Developer Options are enabled
- ADB, Network Debugging, or Wireless Debugging is enabled
- VPN is not separating your PC from your TV
- Firewall is not blocking local network scanning
- Router allows local device discovery
Try:
- Restart Ascend Media RPC.
- Restart your Android TV.
- Reopen the dashboard.
- Run the scanner again.
- Use manual IP fallback if needed.
Confirm this is enabled:
"auto_ip": trueThen check:
- Android TV is awake
- Debugging is enabled
- PC and TV are on the same network
- First-time debugging prompt was accepted
- VPN/firewall is not blocking local discovery
- Router is not isolating devices from each other
If Auto IP still fails, use the dashboard scanner or manual IP fallback.
Choose the Android TV device you use for Stremio or Wako.
Possible detected devices may include:
- Android TV
- Google TV
- NVIDIA Shield
- Chromecast with Google TV
- Fire TV or Android-based TV boxes
- Phones or tablets with debugging enabled
This is normal the first time.
On the TV, select:
Always allow from this computerThen select:
AllowRestart Ascend Media RPC if needed.
Make sure you selected:
Always allow from this computerIf it still asks every time:
- TV debugging permissions may have been reset
- PC network identity may have changed
- Android TV debugging keys may have reset
- VPN or network changes may be affecting the connection
Try disabling and re-enabling debugging on the TV, then accept the prompt again.
Check that:
- Discord desktop app is open
- You are logged into Discord
- Discord Activity Status is enabled
- Ascend Media RPC is running
- Stremio or Wako is actively playing something
- Android TV is connected in the dashboard
- Another Discord RPC app is not overriding the status
In Discord, check:
User Settings > Activity PrivacyMake sure activity sharing is enabled.
Open it manually:
http://localhost:5466If you changed the port, use that port instead.
Check that:
run.batis still running- The app did not crash
- No other app is using the same port
- Firewall is not blocking local connections
Check that:
- Stremio or Wako is actively playing
- Correct Android TV device is selected
- TV is awake
- Dashboard shows the TV as connected
wako_modematches the app you are using
For Stremio:
"wako_mode": falseFor Wako:
"wako_mode": trueCheck that your API keys are correct:
"tmdb_api_key": "YOUR_TMDB_API_KEY",
"erdb_token": "YOUR_ERDB_TOKEN",
"top_posters_api_key": "YOUR_TOP_POSTERS_API_KEY"Also check:
- Internet connection is working
- Media title is detected correctly
- Title exists in TMDB or the selected artwork provider
- Selected artwork mode is supported
- API provider is not rate-limiting requests
TMDB is useful as a fallback when other providers do not return artwork.
Check:
"wako_mode": falseAlso confirm:
- Stremio is open
- Playback is active
- Android TV is connected
- Android TV screen is awake
- Dashboard shows the correct selected device
Check:
"wako_mode": trueAlso confirm:
- Wako is open
- Playback is active
- Android TV is connected
- Android TV screen is awake
- Dashboard shows the correct selected device
Ascend Media RPC is designed for local use.
It connects to your Android TV over your local network and serves a local dashboard from your PC.
For safety:
- Only enable debugging on trusted home networks
- Do not expose Android TV debugging ports to the internet
- Do not port-forward Android TV debugging through your router
- Only accept debugging prompts from your own computer
- Disable debugging when not using it if you want maximum security
- Do not publicly expose the dashboard port
- Do not share your API keys or tokens publicly
Ascend Media RPC is intended to run on your private local network.
- Python
- Flask
- pypresence
- Built-in ADB tooling
- Discord Rich Presence
- TMDB
- EasyRatingsDB
- Top Posters
- Nuvio
- Trakt
- MyAnimeList
Developed by Cxsmo-ai.
This project is not affiliated with Discord, Stremio, Wako, TMDB, Trakt, MyAnimeList, EasyRatingsDB, Top Posters, Nuvio, AniSkip, IntroDB, Tidb, SkipMe, VideoSkip, or NotScare.
All trademarks, names, logos, and brands belong to their respective owners.
Ascend Media RPC does not provide, host, index, distribute, or stream media content. It only detects local playback activity and updates Discord Rich Presence.
If you like this project, consider starring the repository.
๐ Ascend Media RPC
Rich Presence Client + Smart Skip + Android TV Telemetry

