/LEP-downloader

Python 3.8+ script (and command-line app) for downloading the all FREE episodes of Luke's ENGLISH Podcast, available on its archive webpage https://teacherluke.co.uk/archive-of-episodes-1-149/

Primary LanguagePythonMIT LicenseMIT

LEP Downloader

PyPI Status Python Version License

Read the documentation at https://lep-downloader.readthedocs.io/ Tests Codecov

pre-commit Black


About

LEP Downloader is a script for downloading the all FREE episodes of Luke's ENGLISH Podcast.

It lets you to get all audio files (including audio tracks to video episodes) and also PDF files for each episode page.

Even though this script was written for convenient episode downloading, I don't want to financially harm Luke in any way. I just want to make my life a bit easier (as usual for lazy IT person =). So consider donating to Luke's English Podcast and becoming his premium subscriber. And of course, subscribe on his YouTube channel.

Read the full documentation on website.

🚀 Features

  • Download a range of episodes filtering by episode number or by episode date
  • Download only the last episode
  • Download PDF files of episodes web pages
  • Saving files to specified folder on your hard / solid / flash drive
  • Running script in quiet mode for automated routine
  • Writing log file in debug mode

🛠️ Requirements

  • Python 3.8+
  • Internet connection

💻 Installation

You can install LEP Downloader via pip from PyPI:

pip install lep-downloader

I do recommend you to use pipx for any CLI Python package. It let you install and run Python applications in isolated environments.

python -m pip install --user pipx
pipx install lep-downloader
lep-downloader --help

🕹 Usage

lep-downloader -ep 758

You can also use the short script name:

lep-dl --last

Please see the Usage Examples for details.

Or skim the Man Page for available options (if terminal is your best friend).

✨ What's new in version 3

The third version was completely re-written by me (again). But this time with more fundamental and mature approach. I applied some OOP (object-oriented programming) principles and covered almost all functions with absolutely isolated unit tests.

Code base became more extendable and maintainable (I believe). I dropped support for file naming from old script versions. Also I removed (for awhile) video and add-ons download (I plan to add them again in the future, however - no any promises).

Archive parsing was improved (without skipping several episodes). Also I added built-in possibility to download files from reserve server, if primary link is not available (for any reason).

And many internal little things. You can read descriptions of pre-releases on Releases page (if you wish).

✊ Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

📝 License

Distributed under the terms of the MIT license, LEP Downloader is free and open source software. It means you can modify it, redistribute it or use it however you like as long as you do mention the author of the original script.

🐞 Issues

If you encounter any problems, please file an issue along with a detailed description.

🙏🏻 Credits

This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.

Script uses the following packages / libraries under the hood:

and other amazing Python packages for development and testing. See a full list of them in 'dependencies' section of pyproject.toml file.