Author Archive

For users of the premium version this release brings a big change: Instead of my own servers this version uses Google Drive for synchronizing your uPod devices. Not only is the sync faster, but also the Google servers are a bit (just a tiny bit) more reliable than the single server I’ve used before. So there will be less downtime. You won’t notice any changes, as uPod behaves the same way as before — only on the first start you will need to grant uPod the required permissions to access your Google Drive account. And you should quickly update all of your devices as they’ll run out of sync otherwise when one will sync against the older server and others against Google Drive.

For users of the free version I have a little present: A feature which was exclusive to the premium version is now available to all of you and that will make your live with uPod even easiere. It is the full automatic download. Already before you could configure which episodes should be added to the download queue automatically, but with version 6 uPod will now automatically download all episodes from the queue whenever a WiFi connection is available.

And for all of you there are some other new features:

uPod now uses Android’s job scheduling API when running on Android 5 or above. This might result in less accurate scheduling for tasks like automatic sync and download, but helps Android to save battery.

I’ve restructured the navigation drawer on the left to more clearly show what’s the scope of the Saved for Later section.

Lists with epidoes from multiple podcasts (like the playlist) no longer use the podcast color for the episodes’ progress bar, but uPod’s key color instead, to make the UI less gaudy.

I’ve increased the drag and drop speed when moving episodes around in the playlist or the download queue.

Are you falling asleep while listening to your podcasts? Regarding the fact, that the sleep timer was on rank four of the most requested features on uPod’s support site this seems to be a common problem among podcast listeners. If this is the case for you, I suggest that you think about whether you are listening to the right podcasts. If you are sure this is already the case, then you might be happy to read that uPod 5.1 Premium finally brings a sleep timer.

But a sleep timer not only helps you to avoid missing too much content when falling asleep. It also gives you a possibility to automatically let you know when your workout or your lunch break is over and it gives you an easy option to finish playback at the next sensful break position (end of chapter or episode).

To activate the sleep timer simply bring up uPod’s playback screen eighter by tapping the playback bar inside uPod or the playback notification from Android’s status bar. If you are a user of the premium version, you will find a new sleep timer icon in the lower right of the playback screen while a playback is running. Simply tap it and pick one of the three options from the menu (see screenshot above):

Stop at end of chapter

Stop at end of episode

Sleep timer

Afterwards the sleep timer icon will be shown “active” and a text besides it indicates the current mode: “Chapter”, “Episode” or the remaining time of the timer (see screenshot below).

I am always trying to provide an outstanding usability in uPod. Input of the desired timer value is one such cases: Other players let you scroll through huge lists of durations with an accuracy of five minutes or more. Due to an effective timer input control (similar to the one of Lollipop’s stock timer app) you can quickly enter any timer value you want in uPod with an accuracy of a single second with just a few taps. For those developer who want to raise the usability of their app to the same level, I’ve open sourced the timer duration picker on GitHub.

Man what a headline! I should have become a marketing guy! But now back to my unglamarous developer live: I am really proud to present chapter support in uPod! Especially in the German podcast scene chapter marks are a widely used feature. They provide you the possibility to skip chapters not relevant to you or to relisten specific topcis later. Further on they may provide furhter information like images or web links. uPod 5 implements all of these features.

So contact the publishers of your favorite podcasts and convince them to include chapter marks in the future. I already use them in my podcasts and it is really quite easy if you set the chapter marks immediately during recording. The only thing the publisher has to do then is to name the chapters in the post production and to embed them in the final media files which is easy with Auphonic. (And using Auphonic is anyway a good idea as it normalizes the levels of all recording tracks. Would all publishers use it, I could remove the gain button in uPod…). The auphonic blog contains a helpful post regarding chapter marks for producers.

How do Chapters work?

uPod supports chapter marks in MP3 and M4A/AAC/MP4 files. This is something I am especially proud of: As there are no ready to use Java libraries available to extract chapter information from these files (except things like FFMPEG or MP4Box which would blow up the APK’s size to more than 50MBs) I’ve implemented my own parsers. This was easy for MP3 but a bit more tricky for M4A. I hope I’ll find the time to upload the stuff to GitHub some day.

As the chapter information is extracted from the media file, the file needs to be downloaded to make chapter information available. Then you can access it in two places:

The epsiode details screen (the one you get when you tap an episode in a list of episodes)

The playback screen

In the episode details screen the chapter list is for informational purpose only. More interesting is the playback screen: Here you get a chapter bar at the bottom. It contains information about the chapter at the current playback position including

the title,

a possible link (tap it to open it in the browser) and

the playback position within the chapter itself.

Further on it provides buttons to jump to the next chapter or to the beginning of the chapter or the previous chapter (when pressed within the first three seconds of the chapter).

Additionally, if the chapter has a chapter image, it will be shown in the playback area.

You can drag up the bar to unveil the full chapter list. For each chapter you get its start position, title, image and/or link indicator and duration. Here you can:

tap a chapter to directly jump to it while paused or playing

tap an image or link indicator to open the image or link

Headset Controls

If your headset provides buttons to skip and go back, then you can use these to navigate beteween chapters: If the episode contains chapters you will navigate between them. Otherwise the controls behave like before and will skip the full episode. This features is enabled by default in uPod. You can disable it in the playback settings.

Who will get it?

Accessing information for the chapter currently playing including image and link is available to all users. Accessing the full chapter list and navigating between chapters is available to users of the premium version only.

This is my compromise to help broaden the usage of chapters on the one hand and to making the premium version more interesting on the other hand.

Full change log

Here is the full change log of uPod 5:

Chapter support as described above

More intelligent color extraction from podcast coverarts (now also the accent color may be extracted from the coverart if there is a vibrant color with enough contrast to the background)

The last update brought a new playback view. Though the visual update was welcome by most of you, some had complaints regarding the arrangement of the playback controls and the fact that show notes were provided using a bottom sheet:

The new arrangement of the controls in the playback view caused accidental clicks on the seek bar and thus unwanted position changes during playback.

Providing show notes as a bottom sheet made id impossible to view the show notes and control the playback at the same time what is an important use case for some of you.

Thanks to all of those who shared their thoughts!

That’s why I have again overworked the playback view in uPod 4.7: The seek bar is placed above the playback controls again now to get it out of the way and avoid accidental taps. The show notes have got their own brand new playback view which provides a lot of space for the notes and a full playback bar including seek button and a seek bar at the bottom. I hope you enjoy the new view as much as I do.

As a bonus uPod 4.7 brings episode counter bubbles in the “My podcasts” grid view showing the number of unfinished episodes for each podcast.

The latest uPod release brings a brand new playback view which focuses even more on the podcast’s colors and makes room for additional playback controls planned for future releases. Accessing the show notes from the playback view is a joy now: Tap on the show notes button in the bottom bar and they will slide up from the bottom (see screenshot below). Swipe them up to fill the screen. Swipe them down to dismiss them.

Some users complained about a change in the previous release where only the latest episode of a podcast is added to the “New” section, when subscribing to the podcast. This requires a lot of manual work to save all of a podcast’s episodes for later. That’s why I introduce a new action to save all unfinished episodes of a podcast for later. You can find it in the action menu when viewing the episodes of a podcast.

And for those who want to clean up there device’s storage I’ve introduced an action to immediately delete all episodes listed in the “Recently finished” section.

Here is the full change log:

New playback view with more color and sliding show notes

Volume gain indicator shows current gain

Action to delete all recently finished episode downloads

Menu action within a podcast to save all unfinished episodes for later

By the end of September Google released Android 6 aka “Marshmallow”. Besides the new doze mode — which is a huge battery saver — and a lot of other nifty stuff Google completely revised Android’s permission system: Instead of forcing the user to acknowledge a bunch of detailed permissions upfront while installing the app, installation and update now pass silently and the apps requests the permissions in the moment they are required for the first time. To make this work the app needs to be build natively for Android 6.

The newest release of uPod — version 4.5 — does exactly this. And the best thing: I’ve overworked uPod’s permissions, so that it doesn’t contain any critical once at all. So when you install uPod on Marshmallow you won’t be asked to acknowledge a single permission — not during installation and also not later on.

Besides native Marshmallow support uPod 4.5 brings the following changes:

When subscribing to a podcast only the latest episode is delivered to your “New”-section (instead of all episodes like before).

When streaming an episode, the download notification in the status bar is no longer visible.

The drag handle in the play list has been updated to more clearly state it’s purpose.

On Fri­day and Sat­ur­day I’ve joined the 6th Podlove Pod­caster Work­shopt 2015b in Berlin in the rooms of Wiki­me­dia Ger­many and enjoyed two days full of dis­cus­sion related to pod­cast pro­duc­tion and con­sume. Yes­ter­day I took the chance to present uPod. Though there were mainly active pod­cast­ers in the audi­ence I’ve received a lot of pos­i­tive res­o­nance. Thanks for this and all the valu­able feedback.

Until now uPod used the episode’s download URL to uniquely identify an episode. For some podcasts this resulted in false new episodes, meaning that episodes appeared as new though you’ve already marked them as finished. This was the case, whenever the podcast publisher updated the podcast feed and the download URL of old episodes changed.

Starting with uPod 4.4 episodes are identified by their GUID (global unique identifier), if the publisher assigns one and if the GUID is unique within the feed (which — unfortunately — isn’t the case for all feeds). So episodes should no longer appear as new if you’ve already marked them as finished.

This was a quite heavy change and the upgrade from the old mechanism to the new one is a little bit tricky — especially in conjunction with the cloud sync. That’s why — once you’ve updated your first device — your other devices still running version 4.3 or earlier will not be synchronized with your uPod cloud data, until you also update them.

Further on the new version brings a wizard when starting uPod after the installation which easily allows you to restore your data from the uPod cloud if you are a premium user. So migrating to new devices is easier now.

And finally I’ve fixed the sync of the podcast volume gain settings which has been reset to 0dB in previous releases.

The premium users among you with multiple uPod devices in use will be happy to hear, that uPod now provides immediate cross-device synchronization. About a minute after you’ve made your latest change on one device, all other devices will start a quick sync and fetch only the stuff necessary to get in sync with the original device, which in most cases is just a matter of seconds. So you no longer need to trigger long-running sync manually to bring your device up-to-date.

Further on the latest release finally makes the buttons of BlueTooth headsets work on Lollipop — including the option to exchange the functionality of the skip/back button with the fast forward/rewind buttons.

Ensure that you have uPod 4.3 installed, to benefit from these changes.

Did you also already had the situation that you searched for a podcast in uPod didn’t find it? Though uPod also provides simple ways to add podcasts for example from your mobile browser (simply share the URL with uPod), this always needs a switch to another app. These days are gone now: I’ve just published a new release which brings a new, extensive podcast catalog. Browse the most popular podcasts for your country by category or search for titles and keywords in more than 250,000 podcasts. I’m sure you will always find something to fill your playlist with!