private static bool TryParseMediaRssEmbed(XElement embedElement, XNamespace ns, out MediaRssEmbed parsedEmbed)
        {
            parsedEmbed = default;

            if (!TryParseStringAttribute(embedElement?.Attribute("url"), out var parsedUrl))
            {
                return(false);
            }

            parsedEmbed = new MediaRssEmbed
            {
                Url = parsedUrl,
            };

            if (TryParseIntegerAttribute(embedElement?.Attribute("height"), out var parsedHeight))
            {
                parsedEmbed.Height = parsedHeight;
            }

            if (TryParseIntegerAttribute(embedElement?.Attribute("width"), out var parsedWidth))
            {
                parsedEmbed.Width = parsedWidth;
            }

            parsedEmbed.Params = (embedElement?.Elements(ns + "param") ?? Enumerable.Empty <XElement>())
                                 .Select(x => new MediaRssEmbedParam
            {
                Value = x?.Value,
                Name  = x?.Attribute("name")?.Value,
            })
                                 .Where(x => !string.IsNullOrEmpty(x.Name) || !string.IsNullOrEmpty(x.Value))
                                 .ToList();

            return(true);
        }
        private static bool TryFormatMediaRssEmbed(MediaRssEmbed embedToFormat, out XElement embedElement)
        {
            embedElement = default;

            if (string.IsNullOrEmpty(embedToFormat?.Url))
            {
                return(false);
            }

            embedElement = new XElement(_media + "embed", new XAttribute("url", embedToFormat.Url));

            if (embedToFormat.Height != null)
            {
                embedElement.Add(new XAttribute("height", embedToFormat.Height.Value.ToString(CultureInfo.InvariantCulture)));
            }

            if (embedToFormat.Width != null)
            {
                embedElement.Add(new XAttribute("width", embedToFormat.Width.Value.ToString(CultureInfo.InvariantCulture)));
            }

            foreach (var paramToFormat in embedToFormat.Params ?? Enumerable.Empty <MediaRssEmbedParam>())
            {
                if (string.IsNullOrEmpty(paramToFormat?.Name) && string.IsNullOrEmpty(paramToFormat?.Value))
                {
                    continue;
                }

                var paramElement = new XElement(_media + "param", paramToFormat.Value ?? string.Empty);
                paramElement.Add(new XAttribute("name", paramToFormat.Name ?? string.Empty));

                embedElement.Add(paramElement);
            }

            return(true);
        }