All Projects → zhiayang → moestreamer

zhiayang / moestreamer

Licence: Apache-2.0 license
macOS menubar music player

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to moestreamer

Nuclear
Streaming music player that finds free music for you
Stars: ✭ 7,133 (+41858.82%)
Mutual labels:  streaming, music-player, stream
Azure Event Hubs Spark
Enabling Continuous Data Processing with Apache Spark and Azure Event Hubs
Stars: ✭ 140 (+723.53%)
Mutual labels:  streaming, stream
Smoothstream
Webcam, PiCamera streaming over the network with Python made easy.
Stars: ✭ 133 (+682.35%)
Mutual labels:  streaming, stream
Glob Stream
A Readable Stream interface over node-glob.
Stars: ✭ 172 (+911.76%)
Mutual labels:  streaming, stream
Hls.js
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Stars: ✭ 10,791 (+63376.47%)
Mutual labels:  streaming, stream
Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+8005.88%)
Mutual labels:  streaming, stream
Simple Websocket
Simple, EventEmitter API for WebSockets
Stars: ✭ 159 (+835.29%)
Mutual labels:  streaming, stream
Pandoraplayer
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
Stars: ✭ 1,037 (+6000%)
Mutual labels:  streaming, music-player
Render Media
Intelligently render media files in the browser
Stars: ✭ 181 (+964.71%)
Mutual labels:  streaming, stream
Redis4cats
🔖 Redis client built on top of Cats Effect, Fs2 and Lettuce
Stars: ✭ 189 (+1011.76%)
Mutual labels:  streaming, stream
Vlc Bittorrent
A bittorrent plugin for VLC.
Stars: ✭ 198 (+1064.71%)
Mutual labels:  streaming, stream
Rtmp Rtsp Stream Client Java
Library to stream in rtmp and rtsp for Android. All code in Java
Stars: ✭ 1,338 (+7770.59%)
Mutual labels:  streaming, stream
Athenax
SQL-based streaming analytics platform at scale
Stars: ✭ 1,178 (+6829.41%)
Mutual labels:  streaming, stream
Twitchrecover
Twitch VOD tool which recovers all VODs including those that are sub only or deleted.
Stars: ✭ 123 (+623.53%)
Mutual labels:  streaming, stream
Cypher Stream
Neo4j Cypher queries as Node.js object streams
Stars: ✭ 58 (+241.18%)
Mutual labels:  streaming, stream
Jaxon
Streaming JSON parser for Elixir
Stars: ✭ 145 (+752.94%)
Mutual labels:  streaming, stream
Tributary
Streaming reactive and dataflow graphs in Python
Stars: ✭ 231 (+1258.82%)
Mutual labels:  streaming, stream
Soundwaveinteractive
Interactive Sound Board for Mixer. Microsoft shut Mixer down, so this application no longer works. RIP Mixer.
Stars: ✭ 27 (+58.82%)
Mutual labels:  streaming, stream
Saber
Window-Based Hybrid CPU/GPU Stream Processing Engine
Stars: ✭ 35 (+105.88%)
Mutual labels:  streaming, stream
Hstream
The streaming database built for IoT data storage and real-time processing in the 5G Era
Stars: ✭ 166 (+876.47%)
Mutual labels:  streaming, stream

MoeStreamer

A tiny macOS app that sits in the menubar, to stream music from LISTEN.moe. It also lets you play local playlists from iTunes (or Music.app — same thing).

Features

  1. Streaming from LISTEN.moe, including (un)favouriting when logged in
  2. Playback from local iTunes (Music.app) library
  3. Search for local music
  4. ALWAYS overrides media keys (F7-F9, or touchbar buttons) when the app is open.
  5. Discord presence, including cover art

When logging in to LISTEN.moe, the account password is stored in the macOS Keychain.

Screenshots

Here's how it looks like in the menubar:

Search view:

Settings view:

Keyboard Shortcuts

At the moment, these shortcuts cannot be customised.

function key
play / pause K, space
next song L
(un)mute M
search /
(un)favourite F

Building

$ carthage update --platform macos
$ xcodebuild

Alternatively, open the Xcode project and build it there (you still need to run carthage).

Discord Presence

This app includes support for updating your discord presence, looking something like this:

If you only need the song information (title, artist) to appear, then you don't need to do anything other than check the tickbox. If you want album art to appear however, read further.

As a small easter egg, if you are listening to any albums that I (the app developer) have images for, then you'll get free cover art without needing to do any work! The authorisation stuff below (tokens etc.) is only needed to upload new art.

obtaining your token

In order to use this feature, create an application on the Discord Developer Portal, and note down your Application ID (this is not a secret).

Next, open up your browser web inspector, and fish out the Authorization header from any of the request headers. It should start with mfa.. Probably. This is your token, and it is a secret. I am well aware that this is an account token and not an application token, but I'm too lazy to implement a proper OAuth flow.

Alternatively, you can select "automatically extract token" in the settings, and the app will attempt to find your token from a local running instance of Discord. This doesn't always work, though. Regardless of which method you choose, the token seems to expire after a while, so if you notice that your album arts are not updating, repeat the steps above to get a new token.

managing album art

Discord applications can have at most 150 assets, which means you can only have 150 album art images "available" at a time. If the current song's art does not exist on the server, then it is uploaded (and other victim images are purged to keep below the 150 limit).

If you are reading this far, then you have already created a discord app; upload an image and name it default-cover to serve as the default in case anything goes wrong (note: this is not necessary if you are not using your own application).

License

Contributions from my_cat_is_ugly on Twitch.

Code is licensed under the Apache License Version 2. Icons are from Google's material.io, which are similarly licensed.

App icon is gotten from here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].