private static function simulate_temporary_episode_slug($slug)
 {
     add_filter('podlove_file_url_template', function ($template) use($slug) {
         return str_replace('%episode_slug%', \Podlove\slugify($slug), $template);
     });
 }
 public function set_title($title)
 {
     $this->title = $title;
     $this->slug = strtolower(\Podlove\slugify($title));
 }
 /**
  * Return real file URL
  *
  * For public facing URLs, use ::get_public_file_url().
  *
  * @return string
  */
 public function get_file_url()
 {
     return $this->with_blog_scope(function () {
         $podcast = Podcast::get();
         $episode = $this->episode();
         $episode_asset = EpisodeAsset::find_by_id($this->episode_asset_id);
         $file_type = FileType::find_by_id($episode_asset->file_type_id);
         if (!$episode_asset || !$file_type || !$episode) {
             return '';
         }
         $template = $podcast->get_url_template();
         $template = apply_filters('podlove_file_url_template', $template);
         $template = str_replace('%media_file_base_url%', trailingslashit($podcast->media_file_base_uri), $template);
         $template = str_replace('%episode_slug%', \Podlove\slugify($episode->slug), $template);
         $template = str_replace('%suffix%', $episode_asset->suffix, $template);
         $template = str_replace('%format_extension%', $file_type->extension, $template);
         return trim($template);
     });
 }