Monday, August 6, 2012

Listen Up

To mourn the passing of Google Listen, I decided to write Listen Up. My version of what Google Listen would have been with continued maintenance. I'm not trying to compete with any of the podcast applications out there, I wrote the application for me and I'm now sharing it with the world.

It features a modern Android UI, a desktop widget and tries to do one thing well, which is to play audio podcasts. It uses your Google Reader account and the "Listen Subscriptions" label to automatically synchronize your feeds. The only major thing missing is a podcast search service. I was using the same service that Listen was using but in their announcement Google said they would be pulling the plug on that service too so I scrapped the feature.

Times are rough for everyone, if you can spare some change, the application will set you back $0.99, if you don't, no worries, you can get the free version.

The free version is identical to the paid one. That means the free version has no ads. There are no license checks either. I won't commit to never having ads in the free version but until the economy improves, I don't want to rush to add adverts without giving the chance to let people buy the paid version.

Link to the paid version

Link to the free version

85 comments:

Blackax said...

Awesome' I love listen and how Google reader is integrated' keep up the good work.

Alexey Gurianov said...

Why you don't sync listened state with Reader? List of episodes limited only with one week. Will buy paid version if you fix it.

Patrick Julien said...

Regarding the listened state: Because Google Reader only has a single, universal, field for the read/unread state. If I implement what you're saying, if you skip past an episode in the Google Reader web api, the episode will be marked "read" from your device.

I could implement remote sync feature however, so if you mark something read/unread locally, it won't will show up as read/unread in Google Reader. Would have to be optional, and defaults to off, Listen did that and it wasn't very good.

Regarding additional episodes: List of episodes are not limited to a single week, you have the option from the stream context menu to load more episodes for that stream if you so wish.

Patrick Julien said...

Does my earlier comment address your questions accurately?

Matthieu DUSSARTRE said...

Google Listen sync was good...
A single field for all allows to manage all podcast's episodes in any device link to one's google account (i.e. for me : smartphone, tablet, office computer, home computer).
And it's not possible with your app, which is sad because it has a very nice UI.

Patrick Julien said...

Yeah, I'm planning on adding it eventually but make it completely optional and defaults to off since I don't use that way

Patrick Julien said...

Support for Google Reader's read state has been added, you'll need to turn it on in the options however.

Patrick Julien said...

Support for Google Reader's read state has been added, you'll need to turn it on in the options however.

Matthieu DUSSARTRE said...

Doesn't seem to sync back to Google Reader.
And manually queuing episode doesn't work.
(Android 2.3)

Patrick Julien said...

Did you enable it in the settings?

Patrick Julien said...

I just tried manually queuing an episode with the Android 2.3 emulator and it worked. Can you check if you have the latest version maybe? Should be 1.9.5

Matthieu DUSSARTRE said...

Sync :
Yes I have enabled it in the parameters ("Honor read state") but some items read on another device (my PC) remain unread in Listen Up Free.

Queuing :
I will test a little more when I will have new items in my feeds.
Automatic queuing of new items (even listend ones) bothered me.

Queue :
Is there a way to remove all listened item at once (without checking each one of them before deleting?)

AND THANK YOU FOR SHARING YOUR WORK!

Patrick Julien said...

For sync, keep in mind that Google Reader will not have a "read" state for items that are too old. For those items, there is nothing to honor.

No, there is currently no feature to remove all listened items all at once.

Matthieu DUSSARTRE said...

Ok, I investigated this "Read items" problem and I think I have understood :
1- I sync with ListenUp (items maked as unread, which is OK)
2- I listen stuff with my computer in Google reader or tablet (items become read, which is OK)
3- I sync with ListenUp but old items don't change their "read state", only new enters ListenUp with their good read/unread state.
It isn't a problem of old items since it happens with few days old items.

Patrick Julien said...

Thanks, I'll have a look.

Did listen up get a change to poll? The poll is set to 15 minutes minimum. It will need to poll before it can mark episodes read/unread

Peter said...

where are the downloaded podcast files stored?

Patrick Julien said...

On your sd card, in

Android/data/org.codepimps.listenup/files/downloads

Subba Rao said...

Thanks for this awesome app. I like the google reader integration. I am going to download the paid version next.
Is it possible to have the downloaded files to stay as mp3 so that we can play them in other players when needed?

Thanks again.

Patrick Julien said...

You can just rename the files to mp3, even moving to another directory that doesn't have ".nomedia" would work too.

The problem otherwise is that we could get collisions between different feeds and their file name.

I could maybe look into an exporting feature.

Diogo said...

Hi,

This just happened:
i had a queue that i was thinking is full downloaded, but the last podcast wasn't, and started streaming with my mobile data.

please add an option to completely disable mobile data (including streaming, not only downloading),

Thanks, great app! (sorry for my english)

Patrick Julien said...
This comment has been removed by the author.
Patrick Julien said...

Hi Diogo,

I'll definitely look into it. I'll add an option to only stream from WIFI.

This means only polling will remain on the mobile connection

plaxx said...

Do you plan on making source code available?

Patrick Julien said...

No

Dara Parsavand said...

Is there any documentation? I don't like asking questions before looking at instructions, but I couldn't find any. When I start your app, it says, "Not subscribed to any stream. Add streams to Listen Subscriptions label in Google Reader then refresh". When I go to Google Reader (as installed from the Play store to my AT&T Galaxy Note II), I see SEARCH SOCIAL BROWSE and when I search for one of the podcasts I want (Democracy Now) and select it, I still don't see any streams in the Listen Up app. I don't see anything that looks like a Listen Subscriptions label in Google Reader.

Thanks, Dara

Patrick Julien said...

Hi Dara,

The application, just like Google Listen before it, is a companion application to Google Reader which you can access from here:

http://www.google.com/reader/view/

If you go to the site, you should see your newly added democracy now feed, you just need to create a label called "Listen Subscriptions" and put your feed in it.

I understand this might be a lot more work than you're willing to put in when you're not a Reader user, but like I said, this is really a companion app to Google Reader.

Alternatively, you can always add the subscription directly if you have its URL from "add subscription" form the overflow menu.

Dara Parsavand said...

Thanks for your fast reply Patrick. I didn't realize I could use a PC and go to Google Reader to do things there (yes I am a Google Reader neophyte having controlled all my podcasts on iTunes for my iPhone previously).

For anyone else as new to Google Reader as me, here is what I did (assuming you have a Google Account and you have a subscription in Reader you want to hear):
On a computer (easier than the phone), go to: google.com/reader
Mouse over Subscriptions in the sidebar and click the down error that forms to the right
Select Manage Subscriptions
Select Subscriptions
Find the Subscription you want to hear and click Change Folders (Or it will say Add to a Folder if it isn't assigned to any folder yet)
Select New Folder ...
Type "Listen Subscriptions"

So, now I can see something in the Listen Up app, but it still says 0 new episodes, so I still need to figure out how to add this feed correctly. It could be I'm linking to the text storiels only. If it was only Democracy Now, I was after, I have a stand alone app somebody created for Android that works pretty well, but I was hoping to get Fresh Air, On The Media, and a few other too. I'll keep trying. Thanks again, Dara

PS - I really liked your message about the free and pay versions being the same (I picked the pay off the bat since it was pretty cheap and not much to lose if it doesn't work for me).

Patrick Julien said...

I would think you don't have the right link.

Fortunately, I listen to democracy now also. You can use the following link:

http://www.democracynow.org/podcast.xml

and add it to listen up from the main UI, the overflow menu, the "add subscription" menu option found in the overflow menu.

However, I'm learning a lot from your post. It's clear that I made assumptions about my users also being Google Reader users. I'm going to have to make listen up easier to user for users who are new to Google Reader also.

bnmer007 said...

What are the push pins for? I see that blue is downloaded and gray is not downloaded.

bnmer007 said...

What are the push pins for?

Patrick Julien said...

http://developer.android.com/design/building-blocks/progress.html#custom-indicators

Vince Outlaw said...

I read the page at the link and have a couple additional questions specific to this cool app...

What does a White background with Gray diagonal push pin standfor?

What circumstance would cause something to be marked as Permanently Downloaded (Blue bkgrd, White upright)? I've got one item marked that way when all of the others are marked as Temporarily Downloaded.

Vince Outlaw said...

I'm looking to automate the sharing of items I've listened to. I see the app has a 'Recent' listing that gets added to after the item has been listened to. Is this list available somewhere somehow in some format? Thanks!

Patrick Julien said...

Hi Vince,

Please see here:

http://developer.android.com/design/building-blocks/progress.html#custom-indicators

The only way something becomes permanent is if you click on the pin itself. If you push on it again, it becomes temporary again.

Patrick Julien said...

Nothing yet, you're looking to share to what exactly?

Patrick Julien said...

Please see here for the pin icons:

http://developer.android.com/design/building-blocks/progress.html#custom-indicators

Sorry that I missed your comment in the moderation system earlier.

Andre Felipe GuimarĂ£es said...

Some feeds I changed the name in the gReader, like:
"Descontrole Podcast » Podcast FeedDescontrole Podcast » Podcast Feed - O Podcast mais descontrolado da internet! »"
to
"Descontrole"

But in the App it appears the full name.
That not happens in all feeds.

Kristian Serrano said...

Glad to see this implemented. I had no idea what that setting did until I read this. It might make more sense to label it "Sync read state with Google Reader"

Kristian Serrano said...

I could see a lot of value in adding support for Share Intents so that one can link to a podcast episode in Twitter, Google+, Pocket, Evernote, Gmail, or even the clipboard. I often want to do this when I want to share something with coworkers for example.

Patrick Julien said...

Thanks for the suggestion, changed thee summary of the item to what you said

Kristian Serrano said...

Just wanted to let you know that I'm pimping this app pretty hard on Google+. I love it. It keep the spirit of Google Listen alive and upgrades it to a beautiful and elegant user experience.

I would like to see Listen Up pop up as an option when I click a link to a feed in the browser exactly as Google Listen did. This would make finding and subscribing to new podcasts very easy.

Patrick Julien said...

Thanks, I appreciate it. Stay tuned on discovery, more is coming...

Diogo said...

Weird bug when auto downloading from this podcast, ( http://jovempan.uol.com.br/esportes/programas/podcast )
Episodes play beyond the total duration of mp3, sometimes audio restarts at the middle (but seekbar still show as if was playing normally),
i think is something wrong with download.
In Other programs this podcast works Ok.

Diogo said...

sorry, correct url is http://jovempan.uol.com.br/esportes/programas/esporteemdiscussao/podcast

Matt Newton-Lewis said...

First off, thanks and well done on the app.

I have a feature request: normally I have "download only on WiFi" to save my data allowance when I'm in the office, where there is no WiFi. There is a podcast every Monday and Thursday and I'm happy to use my data allowance to download this. As far as I can tell, the only way to do this is to temporary disable "download only in WiFi", long press the podcast and select download from the menu.

Ideally, I would have a way to say "download now", for the app to warn me that my preferences forbid this and for me to override the warning. Even better if I don't have to go to the menu to do this.

My only other comment is that it's strange that the playback controls aren't displayed when you click on a particular podcast - it seems weird that you can press play from the podcast screen but then can't see the playback controls.

Let me know if you need any more info. And keep up the good work!

Patrick Julien said...

I'll add the force download thing

Playback controls used to be displayed on this activity but it was too confusing. The problem is that let's say you have something queue or something already playing, the play button would cause the queued or paused item to start playback instead of the currently selected item.

Changing it to work on the currently displayed episode works in some scenarios but is equally confusing when something is actually playing now.

alexa said...

First of all, terrific app!
Found it just a few days ago (after Pocket Casts that I've been using for long time completely changed their design and became unstable) and so far really like it!...

A few questions/notes:
1) what happens if I configure download on WiFi only, refresh subscriptions twice a day and on one of refreshes WiFi is not available? will the app download new episodes (discovered on the previous refresh) on on the next refresh?
2) what happens if I configured subscription to queue 2 episodes, have 2 episodes downloaded (and never played) and on the next refresh a new episode is found? will it be downloaded (and the oldest deleted)?
3) can I configure refresh for specific time of day?
4) is it possible to somehow mark currently played episode in the queue? e.g. by changing color of its "handle bar" or highlighting the background...
5) on Gingerbread (Motorola Defy Plus, 2.3.6), in "episode details" screen play/add/delete buttons are almost invisible

Patrick Julien said...

1. The downloads will proceed on the next refresh if and only wi-fi is available
2. The new episode will be downloaded will be added to your queue and downloaded.

The value of your "audio storage" setting determines how many episodes can be retained at any given time.

Under limit, the episode is added to your queue and downloaded
If you reach that limit, either:

a. your queue size < limit, the eldest file outside your is removed and the new episode is added to your queue and downloaded
or b. queue size > limit, the new episode is added to your queue and nothing is removed and nothing is downloaded. It will be downloaded only when you clear out other episodes from the queue

3. Nope. I don't do that because I don't want to consume battery. I use common timers from android's alert manager. See

http://developer.android.com/reference/android/app/AlarmManager.html#setInexactRepeating(int, long, long, android.app.PendingIntent)

4. Yes, select it and use the action bar menu

5. Can you provide a detailed description of where the buttons are? I would like to fix this.

alexa said...

Thanks a lot for the detailed explanation.

Actually b) is somewhat counter-intuitive for me (I saw it "in action" and thought that there's some bug in the app - hence my first two questions). There are some shows that I listen to infrequently, nevertheless when I eventually get to them I'd rather have latest episodes available (in queue and downloaded).
How about changing it to be as follows: "eldest episode from specific show is removed and the new episode is added to the queue and downloaded"? Or adding a configuration that triggers between old and new behavior?

Re: 4) - I actually meant to say that right now (at least on my device) current played episode doesn't have any "visible mark" in the queue. This makes it (for me) rather hard to understand what episode is being currently played and what the next episode will be. Could you please add some marking to the currently played episode? E.g. alter its background color or change color of its handlebar?

Re: 5) - the buttons are dark grey, so they are almost invisible on the black background. I could send you some screenshot if you wish - just tell me the e-mail.

Kristian Serrano said...

The widget is really hard to read. It also sometimes doesn't respond to touch. Is it a work in progress, and will it be updated soon?

alexa said...

re: 5) - checked the app on my wife's phone (Sony Xperia Neo V, Android 2.3.4) and icons have different color there and are perfectly visible; however on my phone they are barely readable - see http://iso2usb.sourceforge.net/listen-up.png

Patrick Julien said...

Alexa,

I think you should just bump your "audio storage" setting to a higher value. If you don't listen to them frequently, you might also want to check out the option on the number of items to queue per feed, which can also be 0.

Re 4: Maybe, how about leaving the title above the player controls when not playing?

re 5: Hmm, that is not normal at all, are you in night mode?

Patrick Julien said...

Hi Kristian,

The current widget looks like crap. That's because i made it so i could i have it but it's very ugly.

The reason I haven't addressed it yet is that:

- Honeycomb added controls inside notifications. This is already more accessible than the widget.
- ICS added lock screen controls
- JB added extended notifications.

It's on my todo list to redo the widget to match the extended notification. Let me know if you had something else in mind

Patrick Julien said...

Diogo,

I can reproduce that it plays past the end but it seems it's only the time length that is incorrect.

I can't get it to jump to the middle however

Mad Brew said...

So do you have plans to update Listen Up now that Google Reader is being tossed out during Google's Spring Cleaning?

Kristian Serrano said...

I'm wondering now if Listen Up will stick around and jump to another API like Feedly's Normandy?

Ken said...

I like the app, Patrick, but the "Sync state with Reader" doesn't seem to be working for me unless I mark things manually (ie, go in to something in the Recently tab that's already completed and shown as greyed out, check it, choose "Mark not listened", and then select it *again* and mark it Listened.

If I don't do that, the next time the app syncs, the unread state from GR actually overwrites the one on Listen Up, and my recently listened podcast gets marked "Not Listened" automatically.

I'm playing about with the sync tags and the refresh frequency to see if I can figure out what's what. I'm currently set to refresh once an hour...is 15m supposed to help with this or something?

Any help appreciated, as I really do like the app!

Ken said...

Aha!! I think I figured it out...for some reason (maybe my oopsie), I had a couple of these episodes that had been listened to that were showing up at the very bottom of my Queue. (so far down I didn't notice them) Once I found and removed them from the queue, the "listened" status immediately updated with Google Reader. Huzzah! Now that I understand what's going on, there appears to be no problem at all...excellent!

Stephen Douglas said...

Love the app, it's pretty much everything I hoped Listen would become. Just a small request, would it be possible to disregard capitalisation when sorting the subscriptions list?

For example, I subscribe to a feed called "the parkrun show" (all lower case), and it appears at the end of my list of subscriptions. Listen would put it together with those starting with "The..."

Stephen Douglas said...

Love the app, it's exactly what I hoped Listen was going to become...

Just a small request - would it be possible to disregard capitalisation when sorting the subscriptions list?

For example, I subscribe to a feed called "the parkrun show" (all lower case), and it'd be nice if it was sorted together with those starting with "The..." rather than being put at the end.

Anyway, thanks again!

Patrick Julien said...

Stephen,

Yes, this could be done eventually, but i'm currently working on replacing Google Reader so it will be a while

Stephen Douglas said...

Thanks Patrick.

Also, just a couple of things:

First, the app seems to periodically add the newest episodes from some feeds to the queue - is there a way to disable it? This happens in feeds that have older episodes that I'd prefer to listen to first. They aren't totally new episodes, they were already in the feed.

Secondly, dequeueing an episode also marks it as listened. This becomes more of an irritant in conjunction with the fist point, when I'm removing episodes that have been automatically queued.

Patrick Julien said...

Yes,

In the feed of your choice, select the overflow menu and choose "None (Manual)"

Stephen Douglas said...

Ah, cool, that works well.

Is the second issue (marking the episode as not listened when dequeueing) intentional?

Patrick Julien said...

Marking it listened is intentional. Otherwise would be queued the next time this feed is checked.

Stephen Douglas said...

That's only true if the feed were configured to queue automatically in the first place. In my case (now I know about the setting!) that's not true.

Perhaps in an ideal world there would be a different flag to say whether it had already been automatically queued, without having to use the listened flag for that purpose? Just a thought, anyway.

Brian Walton said...

Does preference, "The device will only download episodes if it is on battery power" really mean that? I would have thought it is more likely that one would want to restrict downloads when on battery rather than restrict when connected to power.

Patrick Julien said...

Brian,

I'll change the string to be clearer, it means you need to be plugged in to download

Brian Walton said...

Is there a way to instruct the app to download all unlistened podcasts? I have quite a few sitting in both my subscriptions list and my queue but it seems I must manually click the pin on each to download it.

What does the pin icon represent? Touching it seems to toggle the pin position between vertical and diagonal and changes its colour.

How do you manually add or remove programmes to / from the queue?

Is there a way to automatically add new episodes to the queue?

I can't find any user documentation or guides, hence the questions here.

Brian Walton said...

I have several episodes shown with a download indicator with white background and grey pin or, when toggled the pin disappears (presumably white pin on white background). None of these states are described in the Android developer Custom Indicators section. These episodes also show as 0B in size, e.g. 4.26MB/0B which is odd. I don't know how I got into that state!

Patrick Julien said...

white means not downloaded. If 0 most likely you went over the setting in "audio storage" found in your settings

Patrick Julien said...

Brian, please make sure you're using the latest version too

Brian Walton said...

I have audio storage set to 160 episodes and have not downloaded that number of episodes. The interface shows the downloaded size is valid but the total size shows as 0, e.g. 24.0MB/0B, i.e. 24MB has been downloaded of a 0B file. Looking in the download folder I see several .tmp files of zero size.

Patrick Julien said...

brian, can you confirm the application version you're using?

Brian Walton said...

I subscribe to Ubuntu UK podcast (http://feeds.feedburner.com/UbuntuUkPodcastOgg-high?format=xml) but the show description is corrupt. All episodes for this subscription are corrupt but all other subscriptions are fine.

Brian Walton said...

V1.15.4 is shown in change log.

Patrick Julien said...

Brian,

Thanks for the report. The podcast now works currently in the upcoming 2.0 release.

Status is here http://codepimpsdotorg.blogspot.ca/2013/05/listen-up-gpoddernet-update-2.html

Mark Engelberg said...

I don't understand how to add podcasts to the app. Are there instructions anywhere?

Patrick Julien said...

Mark,

Use the gpodder website or the search button.

It's possible however you're currently affected by this:

http://codepimpsdotorg.blogspot.ca/2013/06/listen-up-gpoddernet-update-4.html

Brian Walton said...

The current version of Listen Up (V2.0.7.2) skips forward about 20 seconds when resuming from pause. This happens whether the programme is paused from the application GUI or the lock screen transport control, then the play button is pressed.

Patrick Julien said...

Hi Brian,

I am unable to reproduce. Can you give me a feed that does this?

Brian Walton said...

Skip after pause is happening on
http://feeds.feedburner.com/UbuntuUkPodcastOgg-high. Other podcasts do not suffer this issue so maybe something to do with ogg.

Patrick Julien said...

Hi Brian,

Looks like you've hit the following bug:

https://code.google.com/p/android/issues/detail?id=11590

I suggest you use MP3.

Also, please use the group here for comments:

https://groups.google.com/forum/#!forum/listen-up-users

Roy Pennings said...

Hello. Just to say that Listen up is a great and worthy successor to Listen. I have found just one small - what appears to be - bug. When subscribing to " Radio Decibel weekend met Hoist XXL" then the playlist does not have correct order (dates go from 2010 to 2009, then 2013 and then 1970. When pressing a 1970 podcast, then it shows the correct date (like 2013). This problem does not occur with other players (including good old Listen). It would be nice to have the most recent feed at the top. Still: this is the app to use! Thanks.

Patrick Julien said...

Hi Roy,

Sorry, i didn't you message in the moderation queue there.

use the following group for listen up:

https://groups.google.com/forum/#!forum/listen-up-users

I'll check that podcast you reported