Refactored metadata extraction -> created an EpisodeData dataclass to represent metadata clearly.
Modularized download process: Broke down huge main function into several parts.
Added error handling for yt_dlp.
Added docstrings to functions for ease of understanding.