public static string FixUrl(string url)
    {
        url = url.Trim();

        if (IsBase64String(url))
        {
            byte[] data = Convert.FromBase64String(url);
            url = Encoding.UTF8.GetString(data);
        }

        if (!url.Contains("http:") && !url.Contains("https:") && !url.Contains("ftp:") && !url.Contains("ftps:"))
        {
            url = $"http://{url}";
        }

        Uri uri = new Uri(url);

        if (!url.EndsWith("/") && string.IsNullOrWhiteSpace(Path.GetFileName(WebUtility.UrlDecode(uri.AbsolutePath))) && string.IsNullOrWhiteSpace(uri.Query))
        {
            url += "/";
        }

        if (uri.Host == Constants.GoogleDriveDomain)
        {
            UrlEncodingParser urlEncodingParser = new UrlEncodingParser(url);

            if (urlEncodingParser.AllKeys.Contains("usp"))
            {
                urlEncodingParser.Remove("usp");
            }

            url = urlEncodingParser.ToString();
        }

        return(url);
    }