{"id":"p0dcasters.com/p0dcasters","name":"p0dcasters","commands":["p0d"],"examples":[{"run":"p0d search bookbinding","does":"Search the podcast directory"},{"run":"p0d episodes <slug> --limit 3","does":"List a podcast's latest episodes"},{"run":"p0d submit https://example.org/podcast.rss","does":"Add a show to the directory (a feed, a site or an OPML file)"},{"run":"p0d opml > p0dcasters.opml","does":"The whole directory as an OPML list any podcast app imports"}],"description":"p0d, the p0dcasters.com CLI: search the podcast directory, list episodes, submit shows and export the directory as OPML. One Node 22 script, no package manager.","homepage":"https://p0dcasters.com","repository":"https://github.com/profullstack/p0dcasters","license":null,"agentic":false,"latest_version":"0.4.2","vendor":"Profullstack","install":"curl -fsSL https://p0dcasters.com/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install p0dcasters.com/p0dcasters","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":227,"summary":{"critical":0,"high":2,"medium":37,"low":5,"info":0},"malware":0,"truncated":false,"version":"0.4.2","sources":{"installer":"https://p0dcasters.com/install.sh","installerSha256":"71985609d2a8d4f562c33a46e2838f465aa87ac803f4d760751366ab325620bb","repository":"github.com/profullstack/p0dcasters","commit":"32c3b4102a0bf75c9c209ede8787cffd48ad8bec"},"notes":[],"scannedAt":"2026-11-03T10:50:11.663Z","findings":[{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/public/sw.js","line":45,"malware":false},{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/src/app/api/audio/route.ts","line":34,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/build_live.py","line":16,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/build_live.py","line":28,"malware":false},{"ruleId":"sql-string-concatenation","title":"SQL assembled by concatenation or interpolation","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/export_indie.py","line":221,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/load_directory.mjs","line":84,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/load_directory.mjs","line":112,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/load_directory.mjs","line":173,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/about/page.tsx","line":101,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/category/[category]/page.tsx","line":62,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/category/[category]/page.tsx","line":75,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/language/[lang]/page.tsx","line":64,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/language/[lang]/page.tsx","line":78,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/language/[lang]/page.tsx","line":91,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/layout.tsx","line":141,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/networks/[slug]/page.tsx","line":47,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/networks/[slug]/page.tsx","line":49,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/networks/[slug]/page.tsx","line":62,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/networks/page.tsx","line":23,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/podcast/[slug]/page.tsx","line":134,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/podcasts/page.tsx","line":48,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/radio/page.tsx","line":131,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/search/page.tsx","line":18,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/self-hosted/page.tsx","line":28,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/self-hosted/page.tsx","line":34,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/self-hosted/page.tsx","line":35,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/app/self-hosted/page.tsx","line":37,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/self-hosted/page.tsx","line":48,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/tv/[id]/page.tsx","line":71,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/app/tv/page.tsx","line":115,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/src/components/AuthForm.tsx","line":110,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/components/PitFooter.tsx","line":17,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/src/components/SubmitForm.tsx","line":53,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/platforms.ts","line":98,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/queries.ts","line":69,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/queries.ts","line":111,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/queries.ts","line":112,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/submit.ts","line":408,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/lib/submit.ts","line":520,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"low","category":"code","cwe":"CWE-377","file":"source/firetv/emulator-test.sh","line":23,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"low","category":"code","cwe":"CWE-89","file":"source/test/feed-crawl.test.mjs","line":32,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"low","category":"code","cwe":"CWE-89","file":"source/test/feed-crawl.test.mjs","line":66,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"low","category":"code","cwe":"CWE-89","file":"source/test/newsletter.test.mjs","line":294,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"low","category":"code","cwe":"CWE-89","file":"source/test/newsletter.test.mjs","line":295,"malware":false}]}}