A portable podcast downloader for Windows

For quite a while I was looking for a portable podcast software for Windows. Because I travel a lot and listen to many podcasts, I need to download them somehow while on the road without having a computer with me.

So every few days I would go to an internet café check my email and the latest feeds in Google Reader. Then I would manually download each file and copy it over to my MP3 player.

Even on my home PC I would do the same for a while because I wouldn't install iTunes and tried to avoid installing other media software.

I've been using the PortableApps suite for years now, and it comes with two programs 'Juice and gPodder that do download podcasts.

So I used gPodder for a while but it requires at least 4 clicks to download the latest podcasts. That's too many.

gPodder comes with a command line version gpod.exe but that is not working within the PortableApps package.

Here's what I did to get a one-click portable podcast download solution:

Download the gPodder Portable portableapps.com/apps/internet/gpodder_portable

Download the normal Windows gPodder gpodder.org/downloads

On my USB thumb drive, I have a \Apps folder that was many portable apps. In there I create a new directory 'gPodder'

Run gPodderPortable_3.3.0_Rev_3.paf.exe and as the destination folder, pick 'Apps\gPodder' you just created.

Navigate to '\Apps\gPodder\gPodderPortable\App\Python' and select all files and cut them (Crtl+X, Crtl+C), move up to '\Apps\gPodder\' and paste (Crtl+V). Now delete the 'gPodderPortable' directory. We just used this to get a version of the Python runtime.

Open \Apps\gPodder\PyDLL and delete all files but 'python27.dll'

Finally create an empty directory 'Data' under '\Apps\gPodder\' this is where we store the configuration and mp3 files.

Now extract the content of the file 'gpodder-3.x.x-win32.zip' (3 folders, 5 files) to '\Apps\gPodder\'.

We now have all the files we need, but it does not work just like that. Because gPodder is written in Python we need to make it work with the Python we just downloaded.

This is usually done by adding the location of the Python files to the Windows 'Path' variable. We don't want to change the global path variable, but we could also change the path for a command line session.

Open a command prompt (cmd.exe) and type/copy the following, assuming x: is the drive letter of your USB thumbdrive:

X:
cd \apps\gPodder
SET appDir=X:\apps\gPodder
set path=%systemroot%\system32;%appDir%\PyDLL;%appDir%\Lib;%appDir%\DLLs
gpodder.exe

A dialog will pop up:

No download folder selected

Select 'no' and in the next dialog select the 'x:\Apps\gPodder\Data' folder.

Now you have to set up gPodder for the first time. You can manually add URLs or so your subscriptions from gpodder.net.

You should then 'Check for new episodes' and download the ones you want. I had already listened to them all, so selected all and click 'Mark as old':

No download folder selected

We are now done with the initial setup, close the program.

If you used gpodder.net to get your existing subscriptions, open the file 'X:\Apps\gpodder\Data\Settings.json' in a notepad and search for 'password', You'll find your username and password for gpodder.net, replace them with dummy data, you don't want these credentials in clear text in a file on your thumb drive. You only need them if you want to sync your subscriptions with gpodder.net, not for downloading podcasts.

In the existing command prompt window, type:

gpo

Now we are in the command line version of gPodder, we can list our subscriptions:

list

Check for new podcasts ready to be downloaded:

update

See whether there are any podcasts to download:

pending

And actually download them

download

To exit the command line interface, just:

exit

Remember above we did set the path variable to %systemroot%\system32;%appDir%\PyDLL;%appDir%\Lib;%appDir%\DLLs,

We overrode the existing path variable, but that's okay, this value is only valid for the current session. If you open another command prompt, it has its own path value.

We had to do this, so gPodder can find all the required Python files, because we have to do this every time we want to use gPodder, we create some batch files.

This first one is for starting the Windows version of gPodder, save the following into the file ' X:\Apps\gpodder\gui.cmd'

@ECHO OFF
SET appDir=%~dp0
reg.exe add "HKEY_CURRENT_USER\Software\gpodder.org\gPodder" /v GPODDER_HOME /t REG_SZ /d "%appDir%Data" /f
set path=%systemroot%\system32;%appDir%PyDLL;%appDir%Lib;%appDir%DLLs
pushd %~dp0
start gpodder.exe

This next one gets us into the command line version, save it as X:\Apps\gpodder\cli.cmd

@ECHO OFF
SET appDir=%~dp0
reg.exe add "HKEY_CURRENT_USER\Software\gpodder.org\gPodder" /v GPODDER_HOME /t REG_SZ /d "%appDir%Data" /f
set path=%systemroot%\system32;%appDir%PyDLL;%appDir%Lib;%appDir%DLLs
pushd %~dp0
gpo.exe

The third actually downloads all new popdcasts, the main purpose of all this, save it to X:\Apps\gpodder\Download.cmd

@ECHO OFF
SET appDir=%~dp0
reg.exe add "HKEY_CURRENT_USER\Software\gpodder.org\gPodder" /v GPODDER_HOME /t REG_SZ /d "%appDir%Data" /f
set path=%systemroot%\system32;%appDir%PyDLL;%appDir%Lib;%appDir%DLLs
pushd %~dp0
gpo.exe update
gpo.exe download
cd %appDir%\Data\Downloads
for /r %%x in (*.mp3) do move "%%x" \podcasts\
popd
SET /p dummy=Press any key to close

Notice the line:

for /r %%x in (*.mp3) do move "%%x" \podcasts\

When gPodder downloads an MP3s file, it saves it in a directory with the name of the podcast under X:\Apps\gpodder\Data\Downloads, this is a bit annoying, because I want the files in a single directory where I can see them and copy them over to my MP3 player. That line just copies all MP3 files to X:\podcasts, you can change or remove this if you want.

The final batch file is the one we are actually going to use, because we need to start a new Command Prompt session to run one of the previous three batch files in:

@ECHO OFF
IF [%1] EQU [] start cmd.exe /c \Apps\gpodder\Download.cmd
IF "%1"=="gui" start cmd.exe /c \Apps\gpodder\gui.cmd
IF "%1"=="cli" start cmd.exe /c \Apps\gpodder\cli.cmd

I saved this file as 'gpo.cmd' in my bin directory of my thumbdrive. To use it I open a command prompt and type either:

gpo cli
or
gpo gui

To open the command line interface or the Windows program, when started without a parameter or just double-clicked in Explorer it will start the download process.

Pages in this section