simple-podcast-dl


Namesimple-podcast-dl JSON
Version 1.7 PyPI version JSON
download
home_pagehttps://github.com/kissgyorgy/simple-podcast-dl
SummarySimple podcast downloader (podcatcher)
upload_time2023-01-16 08:31:26
maintainer
docs_urlNone
authorKiss György
requires_python>=3.6
licenseMIT
keywords podcasts
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Simple podcast downloader (podcatcher)

The simplest podcast downloader with no configuration, no tagging, no nothing.  
It simply downloads missing episodes from supported podcasts to a directory.  
_That's it._

You don't even have to know the URL of the RSS, you can give it a website URL,  
a domain name, or simply the podcast name, it will find out which podcast you want to download.

It doesn't have a complicated UI or fancy features, it's just a command line application.  
The download folder and the number of threads can be customized.

I use it in a Jenkins job to synchronize all the episodes to [Nextcloud](https://nextcloud.com/),  
so it will be synced to my phone and I can listen the episodes without internet connection.

## Supported podcasts

- Talk Python To Me (https://talkpython.fm/)
- Python Bytes (https://pythonbytes.fm/)
- The Changelog (https://changelog.com/podcast)
- Podcast.\_\_init\_\_ (https://www.podcastinit.com/)
- Indie Hackers (https://www.indiehackers.com/podcast)
- Real Python (https://realpython.com/podcasts/rpp/)
- Kubernetes Podcast (https://kubernetespodcast.com/)

## Installation

You need at least Python 3.6, then you can simply run:

```
$ pip3 install simple-podcast-dl
```

## Getting started

It is as simple as running the command:

```
$ podcast-dl talkpython.fm
```

And the podcast will be downloaded to the "talkpython.fm" directory.  
You can change the download directory by specifying the `--directory`
(or `-d`) option:

```
$ podcast-dl talkpython.fm -d talkpython-podcast
```

You can list the supported podcast sites with the `--list-podcasts`
(or `-l`) option:

```
$ podcast-dl --list-podcasts
```

You can specify which episodes to download with the `--episodes`
(or `-e`) option:

```
$ podcast-dl --episodes 1,2,3 talkpython
```

You can use the "last" or "last:n" keyword to select the last or last n number
of episodes to download:

```
$ podcast-dl --episodes last:3 talkpython
```

You can list the podcast episodes sorted by episode number with
`--show-episodes` or (`-s`):

```
$ podcast-dl --show-episodes talkpython
```

Or you can even combine it with selecting episodes:

```
$ podcast-dl --show-episodes -e 1-5 talkpython
```

It can show a progress bar with the `--progress` or (`-p`) option:

```
$ podcast-dl -p talkpython
Found a total of 182 missing episodes.
  [##########--------------------------]   28%  00:03:16
```

## Usage

```plain
Usage: podcast-dl [OPTIONS] PODCAST

  Download podcast episodes to the given directory

  URL or domain or short name for the PODCAST argument can be specified,
  e.g. pythonbytes.fm or talkpython or https://talkpython.fm

Options:
  -d, --download-dir PATH         Where to save downloaded episodes. Can be
                                  specified by the DOWNLOAD_DIR environment
                                  variable.  [default: name of PODCAST]
  -e, --episodes EPISODELIST      Episodes to download.
  -s, --show-episodes             Show the list of episodes for PODCAST.
  -l, --list-podcasts             List of supported podcasts, ordered by name.
  -p, --progress                  Show progress bar instead of detailed
                                  messages during download.
  -t, --max-threads INTEGER RANGE
                                  The maximum number of simultaneous
                                  downloads. Can be specified with the
                                  MAX_THREADS environment variable.  [default:
                                  10]
  -v, --verbose                   Show detailed informations during download.
  -V, --version                   Show the version and exit.
  -h, --help                      Show this message and exit.
```

## Development

The project has a `pyproject.toml`, so you can simply install everything needed for development with a single command:

```
$ pip install pipenv
$ poetry install
```

You should format your code with black (it's included in the development requirements):

```
$ poetry run black .
```

You can run the tests with:

```
$ poetry run pytest
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kissgyorgy/simple-podcast-dl",
    "name": "simple-podcast-dl",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "podcasts",
    "author": "Kiss Gy\u00f6rgy",
    "author_email": "kissgyorgy@me.com",
    "download_url": "https://files.pythonhosted.org/packages/93/8f/b3fd46e30ae991bb4c4f51461cb6276134120edfdaf5c6e2723285c590e7/simple_podcast_dl-1.7.tar.gz",
    "platform": null,
    "description": "# Simple podcast downloader (podcatcher)\n\nThe simplest podcast downloader with no configuration, no tagging, no nothing.  \nIt simply downloads missing episodes from supported podcasts to a directory.  \n_That's it._\n\nYou don't even have to know the URL of the RSS, you can give it a website URL,  \na domain name, or simply the podcast name, it will find out which podcast you want to download.\n\nIt doesn't have a complicated UI or fancy features, it's just a command line application.  \nThe download folder and the number of threads can be customized.\n\nI use it in a Jenkins job to synchronize all the episodes to [Nextcloud](https://nextcloud.com/),  \nso it will be synced to my phone and I can listen the episodes without internet connection.\n\n## Supported podcasts\n\n- Talk Python To Me (https://talkpython.fm/)\n- Python Bytes (https://pythonbytes.fm/)\n- The Changelog (https://changelog.com/podcast)\n- Podcast.\\_\\_init\\_\\_ (https://www.podcastinit.com/)\n- Indie Hackers (https://www.indiehackers.com/podcast)\n- Real Python (https://realpython.com/podcasts/rpp/)\n- Kubernetes Podcast (https://kubernetespodcast.com/)\n\n## Installation\n\nYou need at least Python 3.6, then you can simply run:\n\n```\n$ pip3 install simple-podcast-dl\n```\n\n## Getting started\n\nIt is as simple as running the command:\n\n```\n$ podcast-dl talkpython.fm\n```\n\nAnd the podcast will be downloaded to the \"talkpython.fm\" directory.  \nYou can change the download directory by specifying the `--directory`\n(or `-d`) option:\n\n```\n$ podcast-dl talkpython.fm -d talkpython-podcast\n```\n\nYou can list the supported podcast sites with the `--list-podcasts`\n(or `-l`) option:\n\n```\n$ podcast-dl --list-podcasts\n```\n\nYou can specify which episodes to download with the `--episodes`\n(or `-e`) option:\n\n```\n$ podcast-dl --episodes 1,2,3 talkpython\n```\n\nYou can use the \"last\" or \"last:n\" keyword to select the last or last n number\nof episodes to download:\n\n```\n$ podcast-dl --episodes last:3 talkpython\n```\n\nYou can list the podcast episodes sorted by episode number with\n`--show-episodes` or (`-s`):\n\n```\n$ podcast-dl --show-episodes talkpython\n```\n\nOr you can even combine it with selecting episodes:\n\n```\n$ podcast-dl --show-episodes -e 1-5 talkpython\n```\n\nIt can show a progress bar with the `--progress` or (`-p`) option:\n\n```\n$ podcast-dl -p talkpython\nFound a total of 182 missing episodes.\n  [##########--------------------------]   28%  00:03:16\n```\n\n## Usage\n\n```plain\nUsage: podcast-dl [OPTIONS] PODCAST\n\n  Download podcast episodes to the given directory\n\n  URL or domain or short name for the PODCAST argument can be specified,\n  e.g. pythonbytes.fm or talkpython or https://talkpython.fm\n\nOptions:\n  -d, --download-dir PATH         Where to save downloaded episodes. Can be\n                                  specified by the DOWNLOAD_DIR environment\n                                  variable.  [default: name of PODCAST]\n  -e, --episodes EPISODELIST      Episodes to download.\n  -s, --show-episodes             Show the list of episodes for PODCAST.\n  -l, --list-podcasts             List of supported podcasts, ordered by name.\n  -p, --progress                  Show progress bar instead of detailed\n                                  messages during download.\n  -t, --max-threads INTEGER RANGE\n                                  The maximum number of simultaneous\n                                  downloads. Can be specified with the\n                                  MAX_THREADS environment variable.  [default:\n                                  10]\n  -v, --verbose                   Show detailed informations during download.\n  -V, --version                   Show the version and exit.\n  -h, --help                      Show this message and exit.\n```\n\n## Development\n\nThe project has a `pyproject.toml`, so you can simply install everything needed for development with a single command:\n\n```\n$ pip install pipenv\n$ poetry install\n```\n\nYou should format your code with black (it's included in the development requirements):\n\n```\n$ poetry run black .\n```\n\nYou can run the tests with:\n\n```\n$ poetry run pytest\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Simple podcast downloader (podcatcher)",
    "version": "1.7",
    "split_keywords": [
        "podcasts"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b281f91e9703cddb0405d6f9fb2dd5d32015e3d57bae097f25add85576800db",
                "md5": "102a4557b5ff9092bf986536f3b4f6b5",
                "sha256": "0d5a388de8c223db74480b4e7481c7db692e5e7de241a725f85a062f7481bdd3"
            },
            "downloads": -1,
            "filename": "simple_podcast_dl-1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "102a4557b5ff9092bf986536f3b4f6b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 11094,
            "upload_time": "2023-01-16T08:31:24",
            "upload_time_iso_8601": "2023-01-16T08:31:24.366994Z",
            "url": "https://files.pythonhosted.org/packages/4b/28/1f91e9703cddb0405d6f9fb2dd5d32015e3d57bae097f25add85576800db/simple_podcast_dl-1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "938fb3fd46e30ae991bb4c4f51461cb6276134120edfdaf5c6e2723285c590e7",
                "md5": "74aff44ddde348e766c11a7c7576867b",
                "sha256": "9796b83054553b809dcf858d4ff3d82f4913d2ccdacc2b014f21f8b68c948c83"
            },
            "downloads": -1,
            "filename": "simple_podcast_dl-1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "74aff44ddde348e766c11a7c7576867b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 10718,
            "upload_time": "2023-01-16T08:31:26",
            "upload_time_iso_8601": "2023-01-16T08:31:26.256711Z",
            "url": "https://files.pythonhosted.org/packages/93/8f/b3fd46e30ae991bb4c4f51461cb6276134120edfdaf5c6e2723285c590e7/simple_podcast_dl-1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-16 08:31:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "kissgyorgy",
    "github_project": "simple-podcast-dl",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "simple-podcast-dl"
}
        
Elapsed time: 0.03091s