{"podcast":{"title":"Python Bytes","slug":"python-bytes","podcast_index_feed_id":1021771,"rss_url":"https://pythonbytes.fm/episodes/rss","website_url":"https://pythonbytes.fm/","image_url":"https://cdn.pythonbytes.fm/static/img/podcast-theme-img_1400.jpg","author":"Michael Kennedy","episode_count":478,"summary":"Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/python-bytes"},"episodes":[{"title":"#478 Iodine tablets and potable water","slug":"478-iodine-tablets-and-potable-water","published_at":"2026-05-04T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/478-iodine-tablets-and-potable-water","url":"https://pythonbytes.fm/episodes/show/478/iodine-tablets-and-potable-water","duration_seconds":2413,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/478-iodine-tablets-and-potable-water/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/478-iodine-tablets-and-potable-water.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#477 Lazy, Frozen, and 31% Lighter","slug":"477-lazy-frozen-and-31-lighter","published_at":"2026-04-20T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/477-lazy-frozen-and-31-lighter","url":"https://pythonbytes.fm/episodes/show/477/lazy-frozen-and-31-lighter","duration_seconds":2752,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/477-lazy-frozen-and-31-lighter/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/477-lazy-frozen-and-31-lighter.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#476 Common themes","slug":"476-common-themes","published_at":"2026-04-06T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/476-common-themes","url":"https://pythonbytes.fm/episodes/show/476/common-themes","duration_seconds":1942,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/476-common-themes/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/476-common-themes.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#475 Haunted warehouses","slug":"475-haunted-warehouses","published_at":"2026-03-30T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/475-haunted-warehouses","url":"https://pythonbytes.fm/episodes/show/475/haunted-warehouses","duration_seconds":2454,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/475-haunted-warehouses/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/475-haunted-warehouses.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#474 Astral to join OpenAI","slug":"474-astral-to-join-openai","published_at":"2026-03-23T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/474-astral-to-join-openai","url":"https://pythonbytes.fm/episodes/show/474/astral-to-join-openai","duration_seconds":2733,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/474-astral-to-join-openai/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/474-astral-to-join-openai.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#473 A clean room rewrite?","slug":"473-a-clean-room-rewrite","published_at":"2026-03-16T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/473-a-clean-room-rewrite","url":"https://pythonbytes.fm/episodes/show/473/a-clean-room-rewrite","duration_seconds":2770,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/473-a-clean-room-rewrite/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/473-a-clean-room-rewrite.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#472 Monorepos","slug":"472-monorepos","published_at":"2026-03-09T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/472-monorepos","url":"https://pythonbytes.fm/episodes/show/472/monorepos","duration_seconds":1732,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/472-monorepos/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/472-monorepos.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#471 The ORM pattern of 2026?","slug":"471-the-orm-pattern-of-2026","published_at":"2026-03-02T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/471-the-orm-pattern-of-2026","url":"https://pythonbytes.fm/episodes/show/471/the-orm-pattern-of-2026","duration_seconds":2363,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/471-the-orm-pattern-of-2026/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/471-the-orm-pattern-of-2026.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#470 A Jolting Episode","slug":"470-a-jolting-episode","published_at":"2026-02-23T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/470-a-jolting-episode","url":"https://pythonbytes.fm/episodes/show/470/a-jolting-episode","duration_seconds":1529,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/470-a-jolting-episode/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/470-a-jolting-episode.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#469 Commands, out of the terminal","slug":"469-commands-out-of-the-terminal","published_at":"2026-02-09T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/469-commands-out-of-the-terminal","url":"https://pythonbytes.fm/episodes/show/469/commands-out-of-the-terminal","duration_seconds":2036,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/469-commands-out-of-the-terminal/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/469-commands-out-of-the-terminal.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#468 A bolt of Django","slug":"468-a-bolt-of-django","published_at":"2026-02-03T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/468-a-bolt-of-django","url":"https://pythonbytes.fm/episodes/show/468/a-bolt-of-django","duration_seconds":1860,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/468-a-bolt-of-django/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/468-a-bolt-of-django.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#467 Toads in my AI","slug":"467-toads-in-my-ai","published_at":"2026-01-26T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/467-toads-in-my-ai","url":"https://pythonbytes.fm/episodes/show/467/toads-in-my-ai","duration_seconds":1912,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/467-toads-in-my-ai/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/467-toads-in-my-ai.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#466 PSF Lands $1.5 million","slug":"466-psf-lands-1-5-million","published_at":"2026-01-19T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/466-psf-lands-1-5-million","url":"https://pythonbytes.fm/episodes/show/466/psf-lands-1.5-million","duration_seconds":2479,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/466-psf-lands-1-5-million/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/466-psf-lands-1-5-million.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#465 Stack Overflow is Cooked","slug":"465-stack-overflow-is-cooked","published_at":"2026-01-12T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/465-stack-overflow-is-cooked","url":"https://pythonbytes.fm/episodes/show/465/stack-overflow-is-cooked","duration_seconds":2134,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/465-stack-overflow-is-cooked/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/465-stack-overflow-is-cooked.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#464 Malicious Package? No Build For You!","slug":"464-malicious-package-no-build-for-you","published_at":"2026-01-05T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/464-malicious-package-no-build-for-you","url":"https://pythonbytes.fm/episodes/show/464/malicious-package-no-build-for-you","duration_seconds":1818,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/464-malicious-package-no-build-for-you/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/464-malicious-package-no-build-for-you.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#463 2025 is @wrapped","slug":"463-2025-is-wrapped","published_at":"2025-12-22T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/463-2025-is-wrapped","url":"https://pythonbytes.fm/episodes/show/463/2025-is-wrapped","duration_seconds":2599,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/463-2025-is-wrapped/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/463-2025-is-wrapped.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#462 LinkedIn Cringe","slug":"462-linkedin-cringe","published_at":"2025-12-15T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/462-linkedin-cringe","url":"https://pythonbytes.fm/episodes/show/462/linkedin-cringe","duration_seconds":2140,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/462-linkedin-cringe/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/462-linkedin-cringe.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#461 This episdoe has a typo","slug":"461-this-episdoe-has-a-typo","published_at":"2025-12-09T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/461-this-episdoe-has-a-typo","url":"https://pythonbytes.fm/episodes/show/461/this-episdoe-has-a-typo","duration_seconds":1730,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/461-this-episdoe-has-a-typo/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/461-this-episdoe-has-a-typo.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#460 Overlooked Python Typing","slug":"460-overlooked-python-typing","published_at":"2025-12-01T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/460-overlooked-python-typing","url":"https://pythonbytes.fm/episodes/show/460/overlooked-python-typing","duration_seconds":1468,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/460-overlooked-python-typing/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/460-overlooked-python-typing.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#459 Inverted dependency trees","slug":"459-inverted-dependency-trees","published_at":"2025-11-24T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/459-inverted-dependency-trees","url":"https://pythonbytes.fm/episodes/show/459/inverted-dependency-trees","duration_seconds":1974,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/459-inverted-dependency-trees/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/459-inverted-dependency-trees.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#458 I will install Linux on your computer","slug":"458-i-will-install-linux-on-your-computer","published_at":"2025-11-17T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/458-i-will-install-linux-on-your-computer","url":"https://pythonbytes.fm/episodes/show/458/i-will-install-linux-on-your-computer","duration_seconds":1367,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/458-i-will-install-linux-on-your-computer/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/458-i-will-install-linux-on-your-computer.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#457 Tapping into HTTP","slug":"457-tapping-into-http","published_at":"2025-11-11T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/457-tapping-into-http","url":"https://pythonbytes.fm/episodes/show/457/tapping-into-http","duration_seconds":1681,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/457-tapping-into-http/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/457-tapping-into-http.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#456 You're so wrong","slug":"456-you-re-so-wrong","published_at":"2025-11-03T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/456-you-re-so-wrong","url":"https://pythonbytes.fm/episodes/show/456/youre-so-wrong","duration_seconds":1546,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/456-you-re-so-wrong/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/456-you-re-so-wrong.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#455 Gilded Python and Beyond","slug":"455-gilded-python-and-beyond","published_at":"2025-10-27T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/455-gilded-python-and-beyond","url":"https://pythonbytes.fm/episodes/show/455/gilded-python-and-beyond","duration_seconds":2333,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/455-gilded-python-and-beyond/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/455-gilded-python-and-beyond.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]},{"title":"#454 It's some form of Elvish","slug":"454-it-s-some-form-of-elvish","published_at":"2025-10-20T08:00:00+00:00","page_url":"https://stenobird.com/podcast/python-bytes/454-it-s-some-form-of-elvish","url":"https://pythonbytes.fm/episodes/show/454/its-some-form-of-elvish","duration_seconds":1747,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/python-bytes/episodes/454-it-s-some-form-of-elvish/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/python-bytes/454-it-s-some-form-of-elvish.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}]}