$url = \Podlove\Http\Curl::resolve_redirects($url, 5);
        }
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        // make curl_exec() return the result
        curl_setopt($curl, CURLOPT_HEADER, true);
        // header only
        curl_setopt($curl, CURLOPT_NOBODY, true);
        // return no body; HTTP request method: HEAD
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, \Podlove\get_setting('website', 'ssl_verify_peer') == 'on');
        // Don't check SSL certificate in order to be able to use self signed certificates
        curl_setopt($curl, CURLOPT_FAILONERROR, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 3);
        // HEAD requests shouldn't take > 2 seconds
        if ($etag) {
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('If-None-Match: "' . $etag . '"'));
        }
        curl_setopt($curl, CURLOPT_USERAGENT, \Podlove\Http\Curl::user_agent());
        $response = curl_exec($curl);
        $response_header = curl_getinfo($curl);
        $error = curl_error($curl);
        curl_close($curl);
        return array('header' => $response_header, 'response' => $response, 'error' => $error);
    }
}
MediaFile::property('id', 'INT NOT NULL AUTO_INCREMENT PRIMARY KEY');
MediaFile::property('episode_id', 'INT');
MediaFile::property('episode_asset_id', 'INT');
MediaFile::property('size', 'INT');
MediaFile::property('etag', 'VARCHAR(255)');