{"id":24307077,"url":"https://github.com/fulldecent/podcast-template","last_synced_at":"2026-03-17T22:10:59.630Z","repository":{"id":147413984,"uuid":"584272013","full_name":"fulldecent/podcast-template","owner":"fulldecent","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-21T03:28:51.000Z","size":574,"stargazers_count":2,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-26T12:37:16.651Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fulldecent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-01-02T04:15:57.000Z","updated_at":"2024-09-04T05:13:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"593d3dfd-40d6-4ab2-a43e-68ef71c2019c","html_url":"https://github.com/fulldecent/podcast-template","commit_stats":null,"previous_names":["fulldecent/podcast-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/fulldecent/podcast-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fpodcast-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fpodcast-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fpodcast-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fpodcast-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fulldecent","download_url":"https://codeload.github.com/fulldecent/podcast-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fpodcast-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30633240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2025-01-17T03:56:19.652Z","updated_at":"2026-03-17T22:10:59.604Z","avatar_url":"https://github.com/fulldecent.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"demo site https://fulldecent.github.io/podcast.phor.net/\n\nThis GitHub repo is a reusable template that everybody should use for publishing their podcast.\n\nOwn your platform and publish from your own domain name.\n\n* Supports all major podcast platforms\n* Supports (that podcast metadata standardization project)\n* Advises you on how to best format your media to meet Apple Podcasts requirements (incl. loudness) and other best practices, like chapter markers\n\n# podcast.phor.net\n\nThis is a reusable project template to self-publish your YouTube channel or other audio files as a podcast. Output fully complies with Apple Podcasts for Creators [RSS feed requirements](https://podcasters.apple.com/support/823-podcast-requirements).\n\nWe use Jekyll to generate the RSS feed and HTML pages, and GitHub Pages to host the site. And you would go around registering your podcast with iTunes, Google Play, and other podcast directories.\n\nThe data (_data, _episodes) in this repository are for the NFT/Web3 Community Service hour. \n\nSubscribe to Community Service Hour at:\n\n- Apple Podcasts: https://podcasts.apple.com/us/podcast/community-service-hour/id1662422217\n- Google Podcasts: https://podcasts.google.com/feed/aHR0cHM6Ly9wb2RjYXN0LnBob3IubmV0L2ZlZWQueG1s?sa=X\u0026ved=0CAMQ4aUDahcKEwignIL6m7f8AhUAAAAAHQAAAAAQBA\n- Spotify: https://open.spotify.com/show/3k4PnmjfLiuNo9HpXemCdJ\n- Stitcher // NEED LINK\n- Breaker // NEED LINK\n- Pocket Casts // NEED LINK\n- RadioPublic // NEED LINK\n- Overcast // NEED LINK\n- RSS: https://podcast.phor.net/feed.xml\n\n## Syndicate your podcast\n\n- Register on Spotify (no signup required!): https://podcasters.spotify.com/\n- Register on Apple Podcasts: https://podcasters.apple.com/\n\n## Audio encoding\n\nWe follow all Apple [audio requirements](https://podcasters.apple.com/support/893-audio-requirements) and, when appropriate, their recommendations.\n\nFormat:\n\n* \u003e For RSS feeds, Apple Podcasts accepts MP3 or AAC formats.\n\n* \u003e For RSS feeds, we strongly recommend using AAC instead of MP3.\n\n* \u003e When choosing AAC, we recommend using the MP4 format over the ADTS format because MP4 allows for the most-efficient streaming usage and accurate seeking.\n\nBit rate:\n\n* \u003e ... recommended bit rate...\n  \u003e | **Number of channels** | **22.05/24 kHz** | **44.1/48 kHz** |\n  | :--------------------- | :--------------- | :-------------- |\n  | 1 (mono)               | 40–80 kbps       | 64–128 kbps     |\n  | 2 (stereo)             | 80–160 kbps      | 128–256 kbps    |\n\nLevels:\n\n* \u003e ... we recommend that the audio signals are preconditioned so the overall loudness remains around -16 dB LKFS, with a +/- 1 dB tolerance, and that the true-peak value doesn’t exceed -1 dB FS\n\nOur selections:\n\n* AAC/MP4\n* Stereo, 44.1kHz, 160kbps\n* Overall loudness of -16 dB LKFS with +/- 1 dB tolerance, true peak of -1 dBTP\n* Encode loudness information in the header of the MP4 file\n\n## Chapter markers\n\nSpecification: https://podcasters.apple.com/support/2482-using-chapters-on-apple-podcasts\n\nThis site generates the ffmetadata files needed by ffmpeg to add chapter titles into an episode. See the output /ffmetadata folder. Also, a separate text-to-ffmetadata.js script is provided for convenience.\n\n## Production\n\nAdd a new episode by adding a `_episodes/YYYY-MM-DD-episode-NN.md` file and fill in the chapter metadata. And build the website with:\n\n```sh\nbundle exec jekyll build\n```\n\nEncode audio like:\n\n```sh\nffmpeg -i IN.m4v -vn -acodec aac -ac 1 -ar 44100 -b:a 160k -af loudnorm=I=-16:TP=-1:LRA=11:print_format=json -f mp4 -movflags +faststart YYYY-mm-dd-episode-NN-WITHOUT-CHAPTERS.m4a\n```\n\nEncluse chapter markers to make final audio like:\n\n```sh\nffmpeg -i 2022-03-08-episode-14-WITHOUT-CHAPTERS.m4a -i ~/Sites/podcast.phor.net/_site/ffmetadata/2022-03-08-episode-14.txt -map_metadata 1 -codec copy 2022-03-08-episode-14.m4a\n```\n\nUpdate metadata like:\n\n```sh\nNUM=15\nMEDIADIR=~/Desktop/OUT\\ DOES\\ NOT\\ HAVE\\ CHAPTER\\ MARKERS\n\n# Set UUID\nUUID=$(uuidgen)\nsed -i '' -e \"s/guid: .*/guid: \\\"$UUID\\\"/\" *-*-*-episode-$NUM.md\n\n# Set itunes-duration\nDURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $MEDIADIR/*-*-*-episode-$NUM.m4a | cut -d. -f1)\nsed -i '' -e \"s/itunes-duration: .*/itunes-duration: $DURATION/\" _episodes/*-*-*-episode-$NUM.md\n\n# Set enclosure-length\n# get size of $MEDIADIR/*-*-*-episode-$NUM.m4a in bytes\nSIZE=$(stat -f%z $MEDIADIR/*-*-*-episode-$NUM.m4a)\nsed -i '' -e \"s/enclosure-length: .*/enclosure-length: $SIZE/\" _episodes/*-*-*-episode-$NUM.md\n```\n\nNow upload your media to the media storage location. And publish your XML site.\n\n---\n\n\n\nTIPS AND HACKS:\n\n```\nADD notes from audio transcrbe to show notes\n\n\u003c!-- TODO: add summary here\n\n❯ ffmpeg -i 2022-12-21-episode-3.m4a -ss 00:07:22 -to 00:17:49 -c copy out.m4a\n❯ ./products/hear -d -i ~/Desktop/out.m4a \u003e pushpull.txt   \nAnd use a text model for:\n\nTopic: Push and pull Ether sending\n\nGarbled text:\n\nINPUT HERE \u003c\u003c\u003c \u003e\u003e\u003e\n\nCleaned up, intelligible text:\n\nTHIS IS YOUR OUTPUT \u003c\u003c\u003c \u003e\u003e\u003e\n --\u003e\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fpodcast-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffulldecent%2Fpodcast-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fpodcast-template/lists"}