podpuller


Namepodpuller JSON
Version 1.4.6 PyPI version JSON
download
home_pagehttps://github.com/guyhoffman/podpuller
SummaryA simple command line podcast feed syncer
upload_time2024-08-14 18:43:32
maintainerNone
docs_urlNone
authorGuy Hoffman
requires_python>=3.7
licenseMIT
keywords podcasts rss feeds cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # podpuller

### A simple python app to sync your podcasts with RSS feeds and transfer to an external MP3 player

[![PyPI version](https://badge.fury.io/py/podpuller.svg)](https://badge.fury.io/py/podpuller)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Quick Start
1. `pip install podpuller`
1. Copy `feeds.example.conf` to `~/.config/podpuller/feeds.conf`
1. Put in URLs of RSS feeds, using a unique section name for each feed. No need to put in title.
1. You can now use the command `podpuller`

![podpuller screenshot](https://raw.githubusercontent.com/guyhoffman/podpuller/main/screenshot.png)

## Motivation

After giving up my smartphone and buying a cheapo MP3 player I wanted a way to keep my feeds synced. 

There are many great programs for this out there, like [Greg](https://github.com/manolomartinez/greg/), but it didn't really fit my workflow, which was having a certain number of the newest episodes of each podcast, and manually marking the ones I have already listened to. 

This is that app. It was heavily inspired (and liberally copied) from the excellent [upodder](https://github.com/m3nu/upodder) which is no longer maintained. 

## Workflow

#### Config: `~/.config/podpuller/feeds.conf`

1. Choose your RSS feeds
1. Specify how many episodes you want (can be 'all')
1. Choose serial (oldest first) or regular + optional start date

#### Run: `podpuller [opt:single_feed]`
1. Mark the ones you listened to (or skip with "quick mode") 
1. Wait for sync (only syncs single feed if specified)
1. Optionally, transfer to external drive

### Config
The config file is read from `~/.config/podpuller/feeds.conf` and you have an example [here](https://github.com/guyhoffman/podpuller/blob/main/feeds.example.conf). It is pretty straightforward:

##### Global Configs
- `data directory`: Where to store the SQL database of downloaded and listened episodes.
- `download directory`: Where to download the podcasts to.
- `mp3 player directory`: Where to sync the download directory to. 

##### Feed Configs
- Every feed goes into a directory named by its config file section (e.g., `tal` in the sample conf file).
- The `serial` config gets episodes from oldest to newest.
- `start date` ignores everything before that date (useful for `serial` podcasts).
- There's no need to provide a name for the feed, just a URL, the name will be auto-filled from the RSS feed.

### Notes
- Sync both transfers and deletes files. It basically does an exact copy.
- All defaults, including `rsync` flags, are for MacOS but can probably be easily changed for UN*X systems.

## Rant

RSS is a long-standing open standard for updated feeds. Your podcast success is built on the shoulders of many open-source and open-format developers who poured their heart into it. Please stop making your podcast available only through proprietary channels like Spotify, iTunes, etc. Give back by also publishing your RSS feed. Thanks!

## Roadmap

- ~~Tag MP3 files with info from feed~~
- ~~Put project on PyPI~~
- ~~UI improvements~~
- ~~Handle "oldest-first" workflow for serial podcasts~~

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/guyhoffman/podpuller",
    "name": "podpuller",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "podcasts rss feeds cli",
    "author": "Guy Hoffman",
    "author_email": "code@guyhoffman.com",
    "download_url": "https://files.pythonhosted.org/packages/35/b1/f7ec57e16d4164d7d6825648825438edd08c0ad7cf955624d084ecf32753/podpuller-1.4.6.tar.gz",
    "platform": null,
    "description": "# podpuller\n\n### A simple python app to sync your podcasts with RSS feeds and transfer to an external MP3 player\n\n[![PyPI version](https://badge.fury.io/py/podpuller.svg)](https://badge.fury.io/py/podpuller)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Quick Start\n1. `pip install podpuller`\n1. Copy `feeds.example.conf` to `~/.config/podpuller/feeds.conf`\n1. Put in URLs of RSS feeds, using a unique section name for each feed. No need to put in title.\n1. You can now use the command `podpuller`\n\n![podpuller screenshot](https://raw.githubusercontent.com/guyhoffman/podpuller/main/screenshot.png)\n\n## Motivation\n\nAfter giving up my smartphone and buying a cheapo MP3 player I wanted a way to keep my feeds synced. \n\nThere are many great programs for this out there, like [Greg](https://github.com/manolomartinez/greg/), but it didn't really fit my workflow, which was having a certain number of the newest episodes of each podcast, and manually marking the ones I have already listened to. \n\nThis is that app. It was heavily inspired (and liberally copied) from the excellent [upodder](https://github.com/m3nu/upodder) which is no longer maintained. \n\n## Workflow\n\n#### Config: `~/.config/podpuller/feeds.conf`\n\n1. Choose your RSS feeds\n1. Specify how many episodes you want (can be 'all')\n1. Choose serial (oldest first) or regular + optional start date\n\n#### Run: `podpuller [opt:single_feed]`\n1. Mark the ones you listened to (or skip with \"quick mode\") \n1. Wait for sync (only syncs single feed if specified)\n1. Optionally, transfer to external drive\n\n### Config\nThe config file is read from `~/.config/podpuller/feeds.conf` and you have an example [here](https://github.com/guyhoffman/podpuller/blob/main/feeds.example.conf). It is pretty straightforward:\n\n##### Global Configs\n- `data directory`: Where to store the SQL database of downloaded and listened episodes.\n- `download directory`: Where to download the podcasts to.\n- `mp3 player directory`: Where to sync the download directory to. \n\n##### Feed Configs\n- Every feed goes into a directory named by its config file section (e.g., `tal` in the sample conf file).\n- The `serial` config gets episodes from oldest to newest.\n- `start date` ignores everything before that date (useful for `serial` podcasts).\n- There's no need to provide a name for the feed, just a URL, the name will be auto-filled from the RSS feed.\n\n### Notes\n- Sync both transfers and deletes files. It basically does an exact copy.\n- All defaults, including `rsync` flags, are for MacOS but can probably be easily changed for UN*X systems.\n\n## Rant\n\nRSS is a long-standing open standard for updated feeds. Your podcast success is built on the shoulders of many open-source and open-format developers who poured their heart into it. Please stop making your podcast available only through proprietary channels like Spotify, iTunes, etc. Give back by also publishing your RSS feed. Thanks!\n\n## Roadmap\n\n- ~~Tag MP3 files with info from feed~~\n- ~~Put project on PyPI~~\n- ~~UI improvements~~\n- ~~Handle \"oldest-first\" workflow for serial podcasts~~\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple command line podcast feed syncer",
    "version": "1.4.6",
    "project_urls": {
        "Homepage": "https://github.com/guyhoffman/podpuller"
    },
    "split_keywords": [
        "podcasts",
        "rss",
        "feeds",
        "cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "97728028551475466ffe78c20812b93ef14120021c178fc6dfda0da509f5bcae",
                "md5": "077b0f81b262c2fc1e52f2d12985eec2",
                "sha256": "5748c6e1f2de32c18277e71984f0a3dd7f12cff40b3c42c9b0ba92eafca63ddc"
            },
            "downloads": -1,
            "filename": "podpuller-1.4.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "077b0f81b262c2fc1e52f2d12985eec2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 10657,
            "upload_time": "2024-08-14T18:43:31",
            "upload_time_iso_8601": "2024-08-14T18:43:31.405539Z",
            "url": "https://files.pythonhosted.org/packages/97/72/8028551475466ffe78c20812b93ef14120021c178fc6dfda0da509f5bcae/podpuller-1.4.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35b1f7ec57e16d4164d7d6825648825438edd08c0ad7cf955624d084ecf32753",
                "md5": "89ed8458653326bd810e04a9c9d6915c",
                "sha256": "d70ccd8e37010c37792d12c186fbb61c1c71cef93c9a9a5c306ff75a2bfed71b"
            },
            "downloads": -1,
            "filename": "podpuller-1.4.6.tar.gz",
            "has_sig": false,
            "md5_digest": "89ed8458653326bd810e04a9c9d6915c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 10669,
            "upload_time": "2024-08-14T18:43:32",
            "upload_time_iso_8601": "2024-08-14T18:43:32.625513Z",
            "url": "https://files.pythonhosted.org/packages/35/b1/f7ec57e16d4164d7d6825648825438edd08c0ad7cf955624d084ecf32753/podpuller-1.4.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-14 18:43:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "guyhoffman",
    "github_project": "podpuller",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "podpuller"
}
        
Elapsed time: 0.60852s