/podimo

Primary LanguagePythonEuropean Union Public License 1.2EUPL-1.2

Podimo to RSS

Podimo is a proprietary podcasting player that enables you to listen to various exclusive shows behind a paywall. This tool allows you to stream Podimo podcasts with your preferred podcast player, without having to use the Podimo app.

Docker environment variables

  • BIND_HOST: Sets the host and port to bind on (default: 127.0.0.1:12104)
  • HOST: Host that will be displayed in the example. (default: podimo.thijs.sh)

Usage

To obtain a Podimo RSS feed, you need to provide

  • Your Podimo username
  • Your Podimo password
  • The ID of the podcast you want to listen to

These values are passed via an URL.

Example


  • Username example@example.com
  • Password this-is-my-password
  • Podcast ID 12345-abcdef

The URL will be https://podimo.thijs.sh/feed/example%40example.com/this-is-my-password/12345-abcdef.xml. You can pass this URL directly to your favorite podcast player that supports RSS feeds.

Installation for self-hosting

If you want run this script yourself, you need a recent Python 3 version and install the packages in requirements.txt with pip install -r requirements.txt.

Privacy

The script keeps track of a few things in memory:

  • Your username and password, used to login and to create an access token. This is only used temporarily during a request itself.
  • A cryptographic hash that is calculated based on your username and password.
  • A Podimo access token, which is kept in memory for accessing pages after logging in.

This data is never written to the disk and it is never logged. The hosted script runs behind an nginx reverse proxy that requires HTTPS and does not keep any access_logs. The nginx configuration is:

server {
	server_name podimo.thijs.sh;
	access_log off;

	location / {
        proxy_pass http://127.0.0.1:12104;

	    add_header Strict-Transport-Security "max-age=31536000;" always;

	    add_header X-Accel-Buffering no;
	    proxy_buffering off;

        proxy_set_header X-Real-IP $remote_addr;
	}

    listen [::]:443 ssl http2 ipv6only=on; # managed by Certbot
    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/podimo.thijs.sh/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/podimo.thijs.sh/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = podimo.thijs.sh) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

	access_log off;
	listen 80;
	listen [::]:80;
	server_name podimo.thijs.sh;
    return 404; # managed by Certbot
}

License

Copyright 2022 Thijs Raymakers

Licensed under the EUPL, Version 1.2 or – as soon they
will be approved by the European Commission - subsequent
versions of the EUPL (the "Licence");
You may not use this work except in compliance with the
Licence.
You may obtain a copy of the Licence at:

https://joinup.ec.europa.eu/software/page/eupl

Unless required by applicable law or agreed to in
writing, software distributed under the Licence is
distributed on an "AS IS" basis,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.
See the Licence for the specific language governing
permissions and limitations under the Licence.