Help
WFMU (formerly known as Woof Moo) is now the official Android app for WFMU, a listener-supported, non-commercial radio station in Jersey City, NJ.
Features
- Listen to live streams or archived episodes of a show.
- View schedules for each stream’s upcoming shows.
- Download episodes for listening offline.
- Follow shows and get notified when a show starts live streaming or an episode is archived.
- Listen in your car using Android Auto.
- Interact with last.fm to track (aka scrobble) the music you listen to, Discogs to get track information and manage collections, and Spotify to like or add tracks to playlists.
- Home screen widgets (version
2024.09.273or later).
The WFMU Server API is powered by KenzoDB, written by Ken Garson Systems LLC.
Terminology
- Each stream has a weekly schedule of shows.
- Each show has archived episodes.
- Each episode has a list of tracks, which comprise its playlist.
- Episodes can be added to a queue, from which you play them one after the other.
Tabs
The app is split into sections, represented by Navigation Tabs at the bottom of the screen on small-screen devices, or by a Navigation Rail at the each of the screen on large-screen devices. There is also a Navigation Menu at the top left of the screen, from which tabs can be selected.
Only the first 4 tabs can be shown at any one time. Others tabs can be accessed by selecting the More tab (). From within this dialog you can also rearrange tabs to make them more readily accessible.
Home
The Home tab is also the first tab shown. Its contents consist of the following rows from top to bottom:
- A carousel of shows and recently archived episodes. Tap an show or episode for more information.
- The shows you have chosen to follow that will be streamed today. If no followed shows are scheduled, this row is hidden.
- A Now Streaming button, offering quick access to the Streams tab.
- A carousel of all available streams, displaying the name of a stream, its current show (if any), and what the stream is currently playing. If a scheduled show is in progress,
Live DJis shown in red & white text. Swipe across to select other streams. At the far end of this row is the Listen button. Tap it to play the stream currently shown. - A set of tabs for various station-related information and web pages.
Streams
Note: Since version
393(June 2026), this tab is hidden by default. It can be accessed either by tapping the Now Streaming button in the Home tab, via the More tab, or the Navigation Menu.
This tab lists all the available streams, along with their current show, track, and artwork. It offers an alternative way to start listening to a stream or get track information.
Tap on a card to view the Playlist and Comments for the current episode. Tap on a track in the playlist to display more information .
Although you can see the live streaming episode’s comments, you can’t post a comment from here. To post a comment you must use the player interface. See the Comments Page section below for how to access this.
Schedules
The Schedules tab displays the shows scheduled for the next 7 days. If a show is currently live, its current track is displayed. Depending on the tab and grouping settings, a Listen button may be displayed, which plays the corresponding stream.
At the top of the list is a horizontally scrolling set of Filter Chips. Selecting one narrows down the list. Unfinished is selected by default, which means only shows that have not completed are shown. Long-press on a filter for a short summary of its function.
You can also change how the streams are arranged by using the Tab by item in the options menu () to change what each tab represents.
- Tab by -> Stream: Each tab represents a stream containing the week’s upcoming shows for that stream.
- Tab by -> Day: Each tab represents a weekday.
When tabbed by day, the first item in the Filter list is actually a popup menu that changes how shows are grouped within the list.
Tapping on a show opens a dialog containing a list of all its archived episodes, ordered by date.
Tap on an episode in this list to view the episode’s Playlist and Comments . Tap the Listen button to play this episode, either now (interrupting current playback), or next (queuing the episode to play after the current one finishes).
Tap a track in the playlist to show more information about it.
Archive
The Archive tab is composed of these following sections:
- A horizontally scrolling set of Filter Chips. Selecting one narrows down the list. For example, the
Activefilter displays only shows that have been updated in the last month, and theDormantfilter displays shows that have not been updated for a month or more. - A horizontally scrolling list of cards representing the Recently Archived Episodes of all available shows. Tapping an episode displays more information about it.
- An
I'm Feeling Luckybutton, which displays information about a random episode in the archive. - A
Followed Showsbutton, which offers a quick way to open the Followed Shows tab. - A vertically scrolling list of shows in the archive.
Queues
A queue contains a list of episodes that are played one after the other. By default, there are no queues, so the section is empty (technically, there is always an ad hoc queue, but it is hidden by default. See this FAQ entry for more details).
The name “Queue” is a misnomer, as strictly speaking any episode in the list can be the currently playing episode, not just the episode at the head of the queue.
To create a new queue, tap the plus button in the top-right corner and enter a name. Check the Download Episodes Automatically box to automatically download an episode when it is added to the queue. This setting can also be changed using commands in the Automation section of the options menu, along with the ability to automatically remove episodes or downloads when finished.
Add an episode to a queue by tapping the Queue button in its dialog, or by long-pressing on it in a list. Tap the Listen button to start or continue playing episodes in the queue.
Reorder episodes by long-pressing and dragging them up or down in the list. You can also tap the item’s icon (instead of its name) to enter Selection Mode, allowing selection of multiple episodes at once.
To download an episode so you can listen offline, tap the Download button in the episode dialog’s title bar.
Downloads
As mentioned before, episodes can be downloaded for offline listening. Episodes in any queue that are downloading or have been downloaded are also in the Download tab.
An episode can only be downloaded while it is part of a queue. When an episode that has been downloaded is removed from its queue, that download is also removed. However, removing the download itself does not remove the associated episode from the queue.
Followed Shows
A show can be followed, indicated by a star icon alongside its title. Following a show adds it to the list in this tab. You can follow a show by tapping the Follow button in the show’s dialog box, or the menu shown by long-pressing on a show.
Tap the Notify Me button on a followed show’s card to:
- Schedule a reminder notification for when the show starts broadcasting (requires
Allow setting alarms and reminderspermission). - Show a badge and/or display a notification when a new episode of this show is added to the archive.
You can also subscribe to a show, meaning new archived episodes are automatically added to one of your queues. If that queue’s Download Episodes Automatically setting is enabled, the episode will also download in the background.
Bookmarks
Episodes and tracks can be bookmarked for quick access in this tab. If the item is still in the archive, you can play it directly from here.
Note: Bookmarks are not associated with your WFMU account (aka Clicky Stars); they are only stored within the app.
Bookmarks work similarly to bookmarks on the web; the content they point to can be moved or expire. If this happens, try manually checking the source of the bookmark. See this FAQ entry for more details.
History
The History tab lists every episode and track you have listened to, limited to 1,500 items or 28 days (whichever is shorter). As with bookmarks, you can use them to get information or listen directly from this list.
The Player
When playback begins, the Player card appears on the screen. It has two states:
- Maximised: The player occupies the entire screen. The card is split into three pages, accessed by swiping left or right.
- Minimised: The player occupies only the bottom of the screen, above and behind the tabs. The current track’s name and artist are also displayed. Swipe across the track to skip to the next or previous track. To toggle play and pause, tap the play/pause button.
To maximise the player, tap the player or drag the card up. Drag the card down to minimise it.
Transport Page
This is the middle page of the maximised player. It consists of a dial and a small card at the bottom, showing the current track’s name. As with the minimised player, swipe across the track name to change tracks.
The dial is both a way to indicate progress and control the playback position. The thin outer line is the minute hand; the thick inner line is the hour hand, representing progress within the episode. Similar to an iPod® click wheel, drag the dial to change the playback position. One full rotation advances playback by 1 hour.
The progress bar around the info button represents progress within the current track.
A sleep timer is also available via the menu or by tapping the moon button.
Playlist Page
Swipe left or tap the Playlist button on the right side to access the playlist. Tap a track name for more information, or tap its icon to skip directly to that track.
Comments Page
Swipe right or tap the Comments button on the left side to access the comments page. This list updates automatically during live episodes. To post a comment, tap the Compose button. This button is only shown while an episode is playing.
This is the only supported method to post a comment.
Home Screen Widgets
As of version 2024.09.273 (September 2024), the app provides home screen widgets. Access them by long-pressing an empty area of your home screen or the app icon.
Tap the title or icon of any widget to open that section of the app, or tap refresh to update the widget manually.
Queues: Lists all queues and their contents. The current queue is indicated with a checkmark, and the active episode is marked with a vertical bar.
Schedule: Shows all scheduled broadcasts for the day. Followed shows are pinned to the top with a star icon.
Now Playing: Displays the current show, DJ, track title, artist, and artwork. For live streams, the accuracy depends on the last update time (shown next to the refresh button).
Archive: Lists recently archived episodes. Followed shows appear in their own section at the top.
Playlist: Lists tracks for the current episode. The current track is marked with a vertical bar. For archived episodes, tapping a track skips to that position. This is not possible for live streams.
Frequently Asked Questions
Why does an episodes show a "Not Found" or "404" error when I play it?
- If the episode was recently archived (less than 28 days ago) this is usually because the DJ didn’t archive a high quality (
HQ) format of the show for some reason. - If it was archived more than a month ago, the high quality format may have been removed from the archive after a month.
In either case you need to manually locate the “normal quality” format of the specific episode and play that instead.
- Locate the show in the vertically scrolling, alphabetically ordered list of shows in the archive, and tap it.
- If the episode was recently archived, select
Show All Formatsfrom the options menu in the top right corner. - Select the episode without the
HQicon alongside it. This is the normal quality version.
Why does everything except live streams stop working for 2 minutes at 8am GMT?
I have no idea. Maintenance? ¯\_(ツ)_/¯
What is the ad-hoc queue, and why shouldn't I use it for downloads?
When, for example, an archived episode is chosen for playback, behind the scenes a queue is created, containing just this episode. This is the Ad hoc queue. Anything that was in the queue beforehand is removed.
For an episode to be downloadable, it must be part of a queue. When the episode is removed from a queue, its downloaded file is also removed. Therefore if the episode is in the Ad hoc queue and it has been downloaded, you must take care not to play a different episode, or the file will be removed its corresponding episode is removed from the Ad hoc queue.
Therefore the safest option is to create a dedicated queue, whose contents you explicitly manage yourself. Note that, as of version 2022.6.126, the Ad hoc queue is hidden by default. It can be made visible from the 3-vertical-dot menu in the upper-right corner.
How do I select the stream bitrate or format?
Either long press on one of the round buttons containing a speaker icon, or tap the three dot button in the Streams section.
How do I post comments using my WFMU account?
You don’t. Comments posted from within the app are currently not linked to any account. To use your account, go to the episode’s web page instead. A link to the relevant page on the web site is shown at the top of the New Comment dialog box.
It's a bit complex, isn't it?
Yes. The app was made from the ashes of an unfinished podcast player I was working on, and if you squint that’s basically what it still is. A show is a podcast, an episode is an episode of a podcast, a track is a chapter, etc. There’s even a silence skip feature hidden away. C’est la vie.
The app crashes on devices running Android 5, 6, and 7!
Mostly this seems to be related to a lack of memory. I have disabled image loading on these operating system versions as a temporary workaround.
Also, please keep in mind I’m just some guy with a single Android phone, so I can only do so much testing. Please leave Crash Reporting enabled in the Settings, to give me the best chance of fixing issues.
How do I download an episode of a show to listen offline?
- If you haven’t done so already, create a new queue (although the ad hoc queue is always present, it is not recommended that you use it).
- Find the episode you wish to add, either by selecting the show the episode belongs to, located in either the Schedules section or the vertically scrolling list in the Archives section. Tap the correct show, then tap the episode.
- Tap the Add to Queue icon in the top right corner, then select the queue you just created.
- Go to the Queues section, locate the queue you created earlier, and tap the episode you just added to it. In the dialog that opens, select the Download icon in the top right.
When you’re finished with the downloaded episode, remove the corresponding queue entry, and the download will be removed.
You can also mark a queue for Automatic Downloads. Any episodes added to it will be downloaded without your intervention. Enable this when creating the queue, or from the menu.
Why are some shows not listed in the app's archive but are present on the website?
The list of shows in the archive is supplied by the station. The policy concerning what is shown in this list (as opposed to the web site) is unknown, but appears to be based on whether an episode was archived in the last month.
As a temporary workaround, find a show’s ID from its show page URL on the web site. It is usually 2 letters or digits long. Eg: GV in https://www.wfmu.org/playlists/GV. Then choose Open Unlisted Show in the options menu of the archive section of the app, and enter it.
How do I get a notification when a live stream starts, or an episode is archived?
You must first follow a show.
Find the show in the schedules or the vertically scrolling list in the archive, and select it.
Tap the follow button in the menu bar.
From now on, if this show will live stream today it will be shown on the home page, below the carousel.
To receive a reminder when the show starts a live stream, tap the Notifications button on the show’s card, and check Live Streaming Starting.
To receive a notification when an episode of the show is archived, tap the Notifications button on the show’s card, and select New Episode Archived.
How can I change the order in which streams are shown?
Select Reorder Streams from the menu of the Home, Streams, or Schedule section. Drag each item to the preferred order. You can also drag each card directly in the Streams section.
How do I save a downloaded episode as an mp3 file?
- Tap the corresponding episode in its Queue section, OR long-press on the episode in the queue to select it (you can also tap once on its icon).
- Select Copy Download to… from the 3-dot menu in the top right corner.
What's the difference between streaming and downloading an episode?
Downloading an episode transfers the entire episode to your device, whereas streaming splits it into 15 minute chunks (about 10 megabytes each). When you approach the end of one chunk, the next chunk downloads seamlessly.
Therefore you need to be online at the moment the next chunk is required. In this way, should you not listen to the entire episode, you haven’t wasted too much data.
As expected, live streaming requires being online constantly.
How do I sign in to third-party services (last.fm, Discogs, Spotify)?
Go to the app Settings page (using the navigation menu in the top left corner), and sign in to the respective accounts.
Note: You don’t need to install the respective service’s app to sign in.
From now on, when you display track information more options will be available.
How do I change tracks?
If the player is in a collapsed state (it occupies only the bottom part of the screen), swipe across the track name.
If the player is in an expanded (it occupies the entire screen), do one of the following:
- From the Transport page (the middle page), either swipe over the track name at the bottom of the screen or drag the dial in a circular motion. Each dot on the outside represents a new track.
- From the Queues page (the rightmost page), tap the track name, and choose play from the toolbar. You can also tap the track icon in the list, or long-press the track and choose Skip to Position from the context menu.
Why do episode from the archive include about 8 minutes of the following show?
I have no idea, but there’s nothing I can do about it.
To be specific, the audio for most episodes also include a few minutes of the shows before and after it, but in the preceeding case I can automatically trim that out (this isn’t always possible for Chromecast, hence its presence on that platform). Unfortunately, without knowing how long the audio overruns the latter can’t be removed.
Didn't this used to be called Woof Moo?
Yes. With the demise of the old official Android app (with the grey and blue icon), we (the station and I) concluded it made no sense to have an unofficial app without an official one.
Although the new app is published by WFMU, the only difference between the old Woof Moo app and the new app is the icon and name. Functionally it is identical, and as before it is still developed and released by me.