# Podmaker
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.
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](https://github.com/YogiLiu/podmaker/blob/main/config.example.toml).
## Usage
### Systemd
Deploy this tool in the background with systemd (requires root privileges):
```bash
# 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.
```bash
pip install "podmaker[all]"
```
### Using `pipx`
```bash
pipx install "podmaker[all]"
```
### Run
```bash
podmaker -c path/to/config.toml
```
or
```bash
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:
```bash
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](https://github.com/YogiLiu/podmaker/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "https://github.com/YogiLiu/podmaker",
"name": "podmaker",
"maintainer": "YogiLiu",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "YogiLiu@outlook.com",
"keywords": "rss,youtube,podcast",
"author": "YogiLiu",
"author_email": "YogiLiu@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/6a/eb/b21b978a980857f9beb102ff00d163b449334cda863b5b43a7d71a2ac13b/podmaker-0.9.0.tar.gz",
"platform": null,
"description": "# Podmaker\n\nConvert online media into podcast feeds.\n\n![PyPI - Version](https://img.shields.io/pypi/v/podmaker)\n![PyPI - Status](https://img.shields.io/pypi/status/podmaker)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/podmaker)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/podmaker)\n![PyPI - License](https://img.shields.io/pypi/l/podmaker)\n\n\n## Features\n\n- Extract audio from online videos.\n- No need to deploy web services.\n- Generate podcast feeds.\n- Deploy with watch mode to keep feeds up-to-date.\n\n## Dependencies\n\nThis tool uses **ffmpeg** to extract audio from videos. Ensure it's installed within `$PATH` before using this tool.\n\nAdditionally, you should install extra dependencies according to your requirements:\n\n- `podmaker[all]`: Install all extra dependencies.\n- `podmaker[s3]`: Install dependencies for S3 storage.\n- `podmaker[youtube]`: Install dependencies for YouTube.\n\nInstall multiple extra dependencies simultaneously using `podmaker[extra1,extra2,...]`.\n\n## Configuration\n\nBefore diving into this tool, craft a configuration file, a TOML file to be precise.\nBy default, the file resides at `${WORK_DIR}/config.toml`. Customize the path using the `-c` or `--config` option.\nAn example configuration file can be found at [config.example.toml](https://github.com/YogiLiu/podmaker/blob/main/config.example.toml).\n\n## Usage\n\n### Systemd\n\nDeploy this tool in the background with systemd (requires root privileges):\n\n```bash\n# create virtual environment\napt install python3 python3-venv\nmkdir -p /opt/podmaker && cd /opt/podmaker\npython3 -m venv venv\n# install podmaker\n./venv/bin/pip install \"podmaker[all]\"\n# create and edit config file\ncurl -o config.toml https://raw.githubusercontent.com/YogiLiu/podmaker/main/config.example.toml\nvim config.toml\n# create systemd service\ncurl -o /etc/systemd/system/podmaker.service https://raw.githubusercontent.com/YogiLiu/podmaker/main/systemd/podmaker.service\nsystemctl daemon-reload\n# enable and start service\nsystemctl enable podmaker\nsystemctl start podmaker\n```\n\n### Manual\n\n### Using pip\n\nFor the optimal experience, we recommend installing this tool within a virtual environment.\n\n```bash\npip install \"podmaker[all]\"\n```\n\n### Using `pipx`\n\n```bash\npipx install \"podmaker[all]\"\n```\n\n### Run\n\n```bash\npodmaker -c path/to/config.toml\n```\n\nor \n \n```bash\npython -m podmaker -c path/to/config.toml\n```\n\n## Roadmap\n\n### Platforms\n\n- [x] YouTube\n - [x] Playlist\n - [x] Channel\n- [ ] BiliBili\n\n### Resource Hosting\n\n- [x] S3\n- [x] Local\n\n## Contributing\n\nYour contributions are invaluable. Feel free to submit pull requests.\nBefore committing, ensure your changes pass unit tests and `autohooks`.\n\nTo activate `autohooks`, use the following command:\n\n```bash\npoetry run autohooks activate --mode poetry\n```\n\nThis process will automatically lint, format, and sort code imports.\n\nWhen introducing new features, remember to provide corresponding tests.\n\n## License\n\nFor licensing details, refer to [LICENSE](https://github.com/YogiLiu/podmaker/blob/main/LICENSE).",
"bugtrack_url": null,
"license": "Unlicense",
"summary": "Convert online media into podcast feeds.",
"version": "0.9.0",
"project_urls": {
"Bug Tracker": "https://github.com/YogiLiu/podmaker/issues",
"Documentation": "https://github.com/YogiLiu/podmaker/blob/main/README.md",
"Homepage": "https://github.com/YogiLiu/podmaker",
"Repository": "https://github.com/YogiLiu/podmaker"
},
"split_keywords": [
"rss",
"youtube",
"podcast"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ec0ff3fe8b483cd8b9783ea88c05b58e21414aea7bb1893edfa43dda0248b5a7",
"md5": "f3b002e28c733c150365e1090684b819",
"sha256": "f4e3fc5f561114871169b7c756f85f311622379f7de6d3125e49db4ee65c913c"
},
"downloads": -1,
"filename": "podmaker-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f3b002e28c733c150365e1090684b819",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 26279,
"upload_time": "2023-09-10T17:09:20",
"upload_time_iso_8601": "2023-09-10T17:09:20.661675Z",
"url": "https://files.pythonhosted.org/packages/ec/0f/f3fe8b483cd8b9783ea88c05b58e21414aea7bb1893edfa43dda0248b5a7/podmaker-0.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6aebb21b978a980857f9beb102ff00d163b449334cda863b5b43a7d71a2ac13b",
"md5": "e9788ba666d86560489fea819d2bfbe1",
"sha256": "1beec85e1f9b4a4d4c179559223cd491f4c1cfecd1714f4730e9c200e8f20cfa"
},
"downloads": -1,
"filename": "podmaker-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "e9788ba666d86560489fea819d2bfbe1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 19201,
"upload_time": "2023-09-10T17:09:22",
"upload_time_iso_8601": "2023-09-10T17:09:22.567773Z",
"url": "https://files.pythonhosted.org/packages/6a/eb/b21b978a980857f9beb102ff00d163b449334cda863b5b43a7d71a2ac13b/podmaker-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-10 17:09:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "YogiLiu",
"github_project": "podmaker",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "podmaker"
}