{"id":15882061,"url":"https://github.com/ticky/playcaster","last_synced_at":"2025-03-17T13:31:18.227Z","repository":{"id":38329067,"uuid":"456754595","full_name":"ticky/playcaster","owner":"ticky","description":"🎥 Turn any playlist into a Podcast feed","archived":false,"fork":false,"pushed_at":"2024-05-29T01:28:33.000Z","size":281,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-29T15:25:48.812Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ticky.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"License-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-08T02:30:34.000Z","updated_at":"2024-06-01T23:51:15.530Z","dependencies_parsed_at":"2024-04-02T04:32:55.953Z","dependency_job_id":"eaa91beb-cccb-428f-8c2a-42ee78f1b0c4","html_url":"https://github.com/ticky/playcaster","commit_stats":{"total_commits":106,"total_committers":2,"mean_commits":53.0,"dds":0.339622641509434,"last_synced_commit":"2b51a0f7d621b19aa8e442eec48de43313d2a8d8"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fplaycaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fplaycaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fplaycaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fplaycaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ticky","download_url":"https://codeload.github.com/ticky/playcaster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864629,"owners_count":20360356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T04:01:25.867Z","updated_at":"2025-03-17T13:31:17.870Z","avatar_url":"https://github.com/ticky.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Playcaster\n\n[![crates.io](https://img.shields.io/crates/v/playcaster.svg)](https://crates.io/crates/playcaster) [![Rust](https://github.com/ticky/playcaster/actions/workflows/rust.yml/badge.svg)](https://github.com/ticky/playcaster/actions/workflows/rust.yml) [![Docker](https://github.com/ticky/playcaster/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/ticky/playcaster/actions/workflows/docker-publish.yml)\n\nTurn any playlist[^1] into a Podcast feed\n\n## Installation\n\nPlaycaster can be installed from Cargo:\n\n```sh\ncargo install playcaster\n```\n\nYou will additionally need `yt-dlp` installed. Instructions for that can be found at \u003chttps://github.com/yt-dlp/yt-dlp#installation\u003e.\n\n## Usage\n\n`playcaster \u003cfeed-file\u003e \u003cbase-url\u003e [downloader-arguments]...`\n\n```sh\nplaycaster \\\n\t$HOME/htdocs/feeds/playlist.xml \\\n\t\"http://your-podcast-server.example\" \\\n\t--playlist-url \"https://www.youtube.com/playlist?list=playlist\" \\\n\t-- \\\n\t\t--embed-chapters \\\n\t\t--write-auto-sub \\\n\t\t--embed-subs \\\n\t\t--sub-lang en\n```\n\n`--playlist-url` specifies the playlist to fetch items from. It only needs to be specified if `\u003cfeed-file\u003e` doesn't exist yet, or doesn't have a `\u003clink/\u003e` which already points to the playlist.\n\nNOTE: Since [yt-dlp 2022.11.11](https://github.com/yt-dlp/yt-dlp/releases/tag/2022.11.11), plain YouTube channel URLs download as a series of playlists. Playcaster v0.0.2 has been updated to emit an error if all of the items in the target playlist have an apparent duration of zero. You may need to update channel URLs to refer to a specific tab (i.e. `/videos`) or use a playlist instead.\n\nItems after `--` are passed on to `yt-dlp`, to configure its extraction or filter results.\n\n## Docker Installation \u0026 Usage\n\nA Docker image is supplied for ease of use in environments like a NAS, and can be installed with the following command:\n\n```sh\ndocker pull ghcr.io/ticky/playcaster:main\n```\n\nIt can be run as follows, substituting `$HOME/htdocs/feeds` for where your feeds should be on your host system:\n\n```sh\ndocker run --rm -v $HOME/htdocs/feeds:/feeds -it ghcr.io/ticky/playcaster:main \\\n\t\t/feeds/playlist.xml \\\n\t\t\"http://your-podcast-server.example\" \\\n\t\t--playlist-url \"https://www.youtube.com/playlist?list=playlist\" \\\n\t\t-- \\\n\t\t\t--embed-chapters \\\n\t\t\t--write-auto-sub \\\n\t\t\t--embed-subs \\\n\t\t\t--sub-lang en\n```\n\nThe image is based upon [jauderho/yt-dlp](https://hub.docker.com/r/jauderho/yt-dlp), which includes `yt-dlp` and `ffmpeg`.\n\n[^1]: That `yt-dlp` supports, anyway\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fticky%2Fplaycaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fticky%2Fplaycaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fticky%2Fplaycaster/lists"}