Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This website contains all the resources required to compile, create plugins and theme Cider!
All of the endpoints are paths that point to http://localhost:10769
, we've observed that sometimes using 127.0.0.1
when IPv4 is disabled (don't do that btw) tends to break and not connect. We're not fixing this as it's user error for turning off IPv4, but if you cannot do anything about it, try using [::1]:10769
.
/active
This will respond as quickly as possible with an empty 204: No Content
response, it can be used to quickly check that the RPC is still active.
/currentPlayingSong
This will respond with an Apple Music API Response for the currently playing song, the following is an example response.
/addToLibrary
This will save the currently playing track to the user's library. If no music is playing, this will do nothing.
/isPlaying
This will return a JSON string stating if the player is currently actively playing a song or not.
These are the only 2 potential responses to this request, if it is anything else, it's safe to assume something broke.
{/*
*/}
/toggleAutoplay
This will change the autoplay setting to its opposite value and return the updated value in a JSON string.
These are the only 2 potential responses to this request, if it is anything else, it's safe to assume something broke.
/playPause
This is functionally equivalent to clicking the play/pause button within the application.
/play
This is functionally equivalent to clicking the play button within the application, if music is already playing, this will do nothing.
/pause
This is functionally equivalent to clicking the pause button within the application, if music is already paused, this will do nothing.
/stop
This is functionally equivalent to clicking the STOP button within the application, if nothing is happening, this will do nothing
/next
This will skip to the next song, behaviour is identical to clicking the button within the application.
/previous
This will skip to the previous song, behaviour is identical to clicking the button within the application.
/seekto/{t}
Where
t
is the time you'd like to skip to in seconds
Set the playhead to this time in the song, you can use /currentPlayingSong
to get the time, (using the durationInMillis
property divided by 1,000 to get the duration in seconds).
This will always return 204
and if the call fails or the song is too long, it will silently fail, it is recommended that you check the song's actual length before running this function.
/show
Will show the window and demand user attention on the screen
/hide
Will hide the window, if enabled this will minise it to the system tray as well.
/album/{id}
Where
id
is the ID of the album you'd like to lookup
This will run a query of the Apple Music API using the signed in user's account and will pipe the response back to here.
This will always return a 200 but with a different JSON Structure
For More information on the structure of this response, consult the Apple Music API Docs
/rating/{type}/{id}/{rating}
Since Cider version 2.1.3
Where
type
is the type of content you're submitting a rating for, this can be song
, music-video
, album
, or playlist
id
is the ID of the content in question, you can get it from /currentPlayingSong
rating
is the rating you'd like to push
-1
is a dislike
0
resets the rating
1
is a like
/audio
Get the current volume, this will return plain-text as a floating point number between 0 and 1 inclusive
/audio/{volume}
Set the volume slider, will set the in-app volume, not the system volume.
requires a floating point value between 0 and 1, (e.g. /audio/0.8
).
/rating/{type}/{id}
Since Cider version 2.1.3
Where
type
is the type of content you're submitting a rating for, this can be song
, music-video
, album
, or playlist
id
is the ID of the content in question, you can get it from /currentPlayingSong
This website contains all the resources required to compile, create plugins and theme Cider!
Download & Install NodeJS & NPM at https://nodejs.org
Download & Install Git at https://git-scm.com
Install pnpm
using the following command
Open up command prompt and use the following command to clone vencord
Create a file called richerCider.desktop.tsx
in the src/plugins
folder (Git created a folder called Vencord
in wherever your terminal was (make sure it's not in system32)).
Discord needs to be closed before you do this ```bash pnpm inject ```
Patch Discord
Enable the richerCider
plugin
You're no longer allowed to update Vencord, though in most cases Discord updates should be ok, if not just go back to Step 8
This page allows you to figure out the steps and programs needed to compile your own version of Cider.
Recommended / Required Development Utilities
(Optional, but highly recommended)
Basic Command Line Knowledge
::alert{type="warning"} While not required, PNPM is recommended for compiling Cider, and you can install it by using:
npm install -g pnpm
::
Open a terminal window in the directory you'd like Git to clone to and enter the following command
Optionally, if you'd like to use the Development branch of Cider to test upcoming features switch your branch by moving your terminal into the directory and using git to checkout the branch by entering the following commands
::alert{type="note" title="Success"} If you'd like to update your repository in the future to keep up to date, use the command (Make sure you're in the directory, you originally cloned in)
git pull
Now for the fun part, by using pnpm
, npm
or yarn
(we'll be using pnpm
in this case) enter the following command to automatically obtain all required dependencies for installation.
::alert{type="note"} This step could take a little while on some machines. ::
This step takes a little while on the first compilation so bear with it as it does what it needs to do.
Compiling Cider for specific CPU architectures is a smart thing to do and you can do it by adding switches to the dist
argument as displayed.
::alert{type="warning"} On some low-end machines this process could take up to ~10 minutes. ::
::alert{type="warning"} This command would build three separate packages of Cider, AppImage, .deb, and .snap packages ::
If you are on an arch-based Linux distribution and have an AUR helper (pacman/yay/paru/etc.
), then you are in luck. Cider has 2 PKGBUILD's in the Arch User Repository.
Assuming you already have access to the AUR and have a friendly AUR helper (we will use yay
for this example) enter the following command to automatically obtain all required dependencies for installation.
::alert{type="warning"} Running this on Node.js 17 or later will fail. This is due to Node.js 17 no longer writing openssl_fips
to config.gypi
so it's not there in Node.js 17's process.config
. It is suggested to downgrade to nodejs-lts-gallium
to resolve this issue. ::
Your new Cider installation setup file is ready for you! You can find your setup executable in your cloned folder directory on your system in the subfolder dist/
and from there you'll see your new Setup files. Choose the installer that best matches your distro.
::alert{type="note" title="Success"} Congrats! You've successfully compiled your own build of Cider! ::
This page allows you to figure out the steps and programs needed to compile your own version of Cider.
Recommended / Required Development Utilities
(Optional, but highly recommended)
Basic Command Line Knowledge
::alert{type="warning"} While not required, PNPM is recommended for compiling Cider, and you can install it by using:
npm install -g pnpm
::
::alert{type="caution"} You need windows-build-tools to be able to compile the native modules Cider uses for Windows. It should be installed with Node.js through the chocolatey package manager. If the installation fails you can install it using pnpm/npm in an administrator powershell/cmd window and entering:
pnpm install -g windows-build-tools
or
npm install -g windows-build-tools
::
Open a command prompt window in the directory you'd like Git to clone to and enter the following command
Optionally, if you'd like to use the Development branch of Cider to test upcoming features switch your branch by moving your terminal into the directory and using git to checkout the branch by entering the following commands
::alert{type="tip"} If you'd like to update your repository in the future to keep up to date, use the command (Make sure you're in the directory, you originally cloned in)
git pull
::
Now for the fun part, by using pnpm
, npm
or yarn
(we'll be using pnpm
in this case) enter the following command to automatically obtain all required dependencies for installation.
::alert{type="tip"} This step could take a little while on some machines. ::
This step takes a little while on the first compilation so bare with it as it does what it needs to do.
Compiling Cider for specific CPU architectures is a smart thing to do and you can do it by adding switches to the dist
argument as displayed.
::alert{type="warning"} On some low-end machines this process could take up to ~5 minutes. ::
Your new Cider installation setup file is ready for you! You can find your setup executable in your cloned folder directory on your system in the subfolder dist/
and from there you'll see your new Setup file.
::alert{type="note" title="Success"} Congrats! You've successfully compiled your own build of Cider! ::
This page allows you to figure out the steps and programs needed to compile your own version of Cider.
Recommended / Required Development Utilities
(Optional, but highly recommended)
Have an Apple Developer Account and be a member of the . This is necessary to play music through the app.
Basic Command Line Knowledge
::alert{type="warning"} While not required, PNPM is recommended for compiling Cider, and you can install it by using:
npm install -g pnpm
::
::alert{type="caution"} To remind you again, if you don't have an Apple Developer account to sign the Cider binary after building, it WILL NOT work. ::
Open a command prompt window in the directory you'd like Git to clone to and enter the following command
Optionally, if you'd like to use the Development branch of Cider to test upcoming features switch your branch by moving your terminal into the directory and using git to checkout the branch by entering the following commands
::alert{type="tip"} If you'd like to update your repository in the future to keep up to date, use the command (Make sure you're in the directory, you originally cloned in)
git pull
::
Now for the fun part, by using pnpm
, npm
or yarn
(we'll be using pnpm
in this case) enter the following command to automatically obtain all required dependencies for installation.
::alert{type="note"} This step could take a little while on some machines. ::
What is this for? MacOS doesn't like development Widevine DRM keys for some reason. Therefore, we need to sign our own production keys here. This can be done as follows:
Remember your account name and password because you will need it later.
Once in a while, you may need to re-authenticate the VMP account. If that is the case:
In Xcode: Under Xcode > Preferences (⌘,) > Accounts
, you may add your Apple ID. With your team selected, the View Details... in the bottom right could find you the available certificates for generation/download.
After that, select all of the certificates in Keychain Access to generate as a .p12 file. Remember the file location and the .p12 password.
You can set the environment variables permanently by edit the ~/.bash-profile
file and add the above lines at the bottom of the file.
Electron-Packager doesn't like MacOS notarization. You need to manually patch the files in order for it to work properly:
This step takes a little while on the first compilation so bear with it as it does what it needs to do.
This will generate a universal signed and notarized binary. (Don't mind the "not working" command line, it works)
::alert{type="warning"} On some low-end machines this process could take up to ~20-30 minutes. (It will look like it hangs at the notarization part, don't exit it). ::
Your new Cider installation setup file is ready for you! You can find your setup executable in your cloned folder directory on your system in the subfolder dist/
and from there you'll see your new Setup file.
::alert{type="note" title="Success"} Congrats! You've successfully compiled your own build of Cider! ::
The disclaimer for what support we can provide through GitHub or Discord. Please note this before proceeding to ask for help.
Support is fully provided to all releases made on any of our release platforms (Itch, Microsoft Store and Taproom). Please open an , and we will try and fix the issue ASAP. Upon issues being fixed, you will need to wait until the next release if you wish to experience the fixed version in a stable state.
In early access releases the same applies as with normal releases: Support is fully provided and feel free to open an Issue on GitHub if you have problems. However, with these types of releases, you need to remember that they are non-stable releases and you may encounter issues. These builds of the application do not reflect the complete state of the app in any way.
The main Frequently Asked Questions for Cider application support.
::alert{type="note"} This is essential knowledge for the debugging process, please read these before creating an issue. ::
The location of your application data varies depending on your operating system, see your platforms path below:
MS Store: %localappdata%\packages\27554FireDevElijahKlauman.CiderEA_270bejk4xgzqp\LocalCache\Roaming\C2Windows
Windows (non-MS Store): %appdata%\C2Windows
Linux: $HOME/.config/sh.cider.genten
MacOS: /Library/Application Support/sh.cider.genten
Try the following if Discord Rich Presence is not appearing on Discord.
Make sure that Music is set to Explicit.
::alert{type="note"} It could potentially be a case where explicit playback is restricted in your country, in this case you may need to change your Apple Account region to resolve this. ::
This is a fairly rare case and can be resolved fairly easily. Follow the steps below and it should resolve your issue:
Disable any Antivirus and/or Firewall present on your device. These can conflict with the WebSocket API in the client and will cause this error. (ESET is a known offender for this.)
Ensure you do not have a VPN on or any policies enabled on your device that can affect network traffic. Company managed devices may also have policies blocking this.
Check that you do not have Cider running already - and that nothing is running on the same port that Cider operates under - 10767
.
Some resources to aid you in your plugin development.
::alert{type="tip"} If you like to live on the bleeding edge, use the cider-git
package, this will compile directly from the branch. :;
the app-specific password of your Apple Developer account
If you are interested in contributing to this project, please read the .
If you are experiencing this issue, your account might have content restrictions set to "Clean". Login to , go to Profile Picture > Settings, then login again and check the "Content Restrictions" under "Parent Controls".
Outside of this advice, there is an for it, unfortunately we are stuck with it as one of the key components in Cider uses it as a dependency. We cannot help further on this issue.
This page contains all the required documentation for the Renderer and its functions/events.
Unsorted Quirks and Features.
These are some unsorted quirks and features about Cider that will be moved later
Cider is built with the following frameworks and technologies
Electron
Vue 2
Express
EJS
MusicKit.js
Some components from Bootstrap 5 (mainly grids and modals)
Bootstrap Vue
Bootbox
Notyf
(Images, Fonts, etc.)
Resources in the theme can be accessed by their filenames in the theme folder.
Examples:
background: url("my_image.png")
@import url('another_less_file.less')
Once you have completed your plugin its time to publish! Create a new repository for the plugin and upload the files.
To have the theme indexed into Cider's built in plugin explorer, add cidermusicplugin
as a topic on the repository.
Plugins from GitHub in Cider will display the repos README.md file within the Explore Plugins on GitHub page, so be sure to include some screenshots showing off your plugins.
Once you have completed your plugin its time to publish! Create a new repository for the plugin and upload the files.
To have the theme indexed into Cider's built in plugin explorer, add cidermusicplugin
as a topic on the repository.
If one does not already exist, create a new theme directory in the user data folder.
Windows: %appdata%/Cider/themes
Mac: ~/Library/Application Support/Cider/themes
Linux: ~/.config/Cider/themes
Create a new folder in the themes directory with the name of your theme.
This folder needs to contain the following files:
index.less
- The main theme file
theme.json
- Contains several properties for your theme
You can clone a starter template from here:
In Cider, select the theme in the settings.
Cider has automatic hot reloading for themes in the userdata folder.
The default styles.less can be found in:
Once you have completed your plugin its time to publish! Create a new repository for the theme and upload the files.
To have the theme indexed into Cider's built in theme explorer, add cidermusictheme
as a topic on the repository.
/playpause
Toggle between play and pause
/play
Play
/pause
Pause
/stop
Stop the current song
/next
Skip to the next song in the queue
/previous
Go back to the previous song in the queue
/v3
POST
Access the MusicKit instance and use the v3 API routes https://developer.apple.com/documentation/applemusicapi/
Takes 3 parameters.
route
body
options
This page contains documentation on the functions included in the CiderFrontAPI.
Guide on how to change the port the client frontend listens on.
Cider defaults to using port 9000
for the client frontend. If you need to change this port, you can do so by setting the PORT
environment variable.
Note: This only works on Electron Clients. Setting the port on Sabiiro is currently not supported.
When running Cider from the CLI you can set the ports as follows:
This will start the client frontend on port 1111
.
etc/environment
FileIn linux you can set the port in a etc/environment
file. This file is read by the system on startup and sets the environment variables for all processes. MacOS users can use the ~/.bash_profile
file.
theme.json
files require the following properties:
name: string
- The name of the theme
description: string
- Brief description of the theme
version: string
- Version of the theme
author: string
- Theme authors
github_repo: string
- The source repository of the theme, this is required for Cider to automatically update the theme. Formatted <owner>/<repo_name>
pack: array
- (optional) Declare individual LESS files as styles within the package
Pack Object Format:
name: string
- Name of the style
file: string
- File name within the package / repo
description: string
- Description of the style
Attributes are applied to elements to expose app state information to CSS
body[video-playing]
Is a music video playing?
body[focus-state]
focused
blurred
Focus state of the window
body[playback-state]
playing
paused
Current playback state
#app[window-style]
default
- Cupertino
twopanel
- Redmond
Window Layout Style