Coder Social home page Coder Social logo

serene-arc / podcast-downloader Goto Github PK

View Code? Open in Web Editor NEW
15.0 3.0 0.0 83 KB

A simple command-line python tool to download podcasts

License: MIT License

Python 100.00%
rss-feed download-podcasts python podcast-downloader podcast podcast-fetcher archiver podcast-archival archive download downloader opml episodes

podcast-downloader's Issues

Add proper tag engine

Add a proper tag engine that will add tags based on the file format. Needs to use mutagen and not the easy classes as they don't seem to work as well as manually specifying the proper frames

Switch to using Click and subcommands

Switch from using argparse and an increasingly complex series of options and arguments to Click, which dedicated subcommands for each of the functions that the downloader performs

Directory permission error

Hi I don't know if this project is still being maintained but I am having some problems.

Firstly the example you give in the readme does not seem to be correct I have had to add the word download as a command.

I then get a permission error:

openhabian@openhabian:/ $ python -m podcastdownloader download / -l 1 -v -f 'https://anchor.fm/s/3cbbb3b8/podcast/rss'
[2022-10-06 18:06:06,180 - root - INFO] - 1 feeds found
[2022-10-06 18:06:06,184 - root - DEBUG] - Beginning retrieval for https://anchor.fm/s/3cbbb3b8/podcast/rss
[2022-10-06 18:06:14,293 - root - INFO] - Retrieved RSS for The WAN Show
[2022-10-06 18:06:14,294 - root - INFO] - All feeds filled
[2022-10-06 18:06:14,295 - root - INFO] - Limiting episodes per podcast to 1 entries
[2022-10-06 18:06:14,296 - root - INFO] - 1 episodes to download
[2022-10-06 18:06:14,297 - root - DEBUG] - Attempting download of episode USB Branding Changed Again... - WAN Show September 30, 2022 in The WAN Show
Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/openhabian/.local/lib/python3.9/site-packages/podcastdownloader/__main__.py", line 173, in <module>
    cli()
  File "/home/openhabian/.local/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/openhabian/.local/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/openhabian/.local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/openhabian/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/openhabian/.local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/openhabian/.local/lib/python3.9/site-packages/podcastdownloader/__main__.py", line 118, in cli_download
    asyncio.run(download_episodes(all_feeds, destination, threads, write_playlist, limit))
  File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/home/openhabian/.local/lib/python3.9/site-packages/podcastdownloader/__main__.py", line 168, in download_episodes
    await asyncio.gather(*episode_downloaders)
  File "/home/openhabian/.local/lib/python3.9/site-packages/podcastdownloader/__main__.py", line 77, in download_individual_episode
    await episode.download(session)
  File "/home/openhabian/.local/lib/python3.9/site-packages/podcastdownloader/episode.py", line 89, in download
    self.file_path.parent.mkdir(exist_ok=True, parents=True)
  File "/usr/lib/python3.9/pathlib.py", line 1312, in mkdir
    self._accessor.mkdir(self, mode)
PermissionError: [Errno 13] Permission denied: '/The WAN Show'

Mailing Updates

Idea for an enhancement: tool mails a list of new podcast episodes downloaded instead of having all of the output be in the logging, which can be quite dense.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.