Home
Softono
podmaker

podmaker

Open source Python
13
Stars
2
Forks
0
Issues
1
Watchers
2 years
Last Commit

About podmaker

# Podmaker *Read this document in other languages: [English](README.md), [简体中文](README.zh_CN.md)* Convert online media into podcast feeds. ![PyPI - Version](https://img.shields.io/pypi/v/podmaker) ![PyPI - Status](https://img.shields.io/pypi/status/podmaker) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/podmaker) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/podmaker) ![PyPI - License](https://img.shields.io/pypi/l/podmaker) ## Features - Extract audio from online videos. - No need to deploy web services. - Generate podcast feeds. - Deploy with watch mode to keep feeds up-to-date. ## Dependencies This tool uses **ffmpeg** to extract audio from videos. Ensure it's installed within `$PATH` before using this tool. Additionally, you should install extra dependencies according to your requirements: - `podmaker[all]`: Install all extra dependencies. - `podmaker[s3]`: Install dependencies for S3 storage. - `podmaker[youtube]`: Install dependencies for YouTube. I ...

Platforms

Web Self-hosted

Languages

Python

Podmaker

Read this document in other languages: English, 简体中文

Convert online media into podcast feeds.

PyPI - Version PyPI - Status PyPI - Python Version PyPI - Implementation PyPI - License

Features

  • Extract audio from online videos.
  • No need to deploy web services.
  • Generate podcast feeds.
  • Deploy with watch mode to keep feeds up-to-date.

Dependencies

This tool uses ffmpeg to extract audio from videos. Ensure it's installed within $PATH before using this tool.

Additionally, you should install extra dependencies according to your requirements:

  • podmaker[all]: Install all extra dependencies.
  • podmaker[s3]: Install dependencies for S3 storage.
  • podmaker[youtube]: Install dependencies for YouTube.

Install multiple extra dependencies simultaneously using podmaker[extra1,extra2,...].

Configuration

Before diving into this tool, craft a configuration file, a TOML file to be precise. By default, the file resides at ${WORK_DIR}/config.toml. Customize the path using the -c or --config option. An example configuration file can be found at config.example.toml.

Usage

Systemd

Deploy this tool in the background with systemd (requires root privileges):

# create virtual environment
apt install python3 python3-venv
mkdir -p /opt/podmaker && cd /opt/podmaker
python3 -m venv venv

# install podmaker
./venv/bin/pip install "podmaker[all]"

# create and edit config file
curl -o config.toml https://raw.githubusercontent.com/YogiLiu/podmaker/main/config.example.toml
vim config.toml

# create systemd service
curl -o /etc/systemd/system/podmaker.service https://raw.githubusercontent.com/YogiLiu/podmaker/main/systemd/podmaker.service
systemctl daemon-reload

# enable and start service
systemctl enable podmaker
systemctl start podmaker

Manual

Using pip

For the optimal experience, we recommend installing this tool within a virtual environment.

pip install "podmaker[all]"

Using pipx

pipx install "podmaker[all]"

Run

podmaker -c path/to/config.toml

or

python -m podmaker -c path/to/config.toml

Roadmap

Platforms

  • [x] YouTube
    • [x] Playlist
    • [x] Channel
  • [ ] BiliBili

Resource Hosting

  • [x] S3
  • [x] Local

Contributing

Your contributions are invaluable. Feel free to submit pull requests. Before committing, ensure your changes pass unit tests and autohooks.

To activate autohooks, use the following command:

poetry run autohooks activate --mode poetry

This process will automatically lint, format, and sort code imports.

When introducing new features, remember to provide corresponding tests.

License

For licensing details, refer to LICENSE.