diff --git a/src/snek/system/template.py b/src/snek/system/template.py index 2974afc..5d96739 100644 --- a/src/snek/system/template.py +++ b/src/snek/system/template.py @@ -91,10 +91,16 @@ def embed_youtube(text): for element in soup.find_all("a"): if ( element.attrs["href"].startswith("https://www.you") - and ("v=" in element.attrs["href"] or "si=" in element.attrs["href"]) + and "v=" in element.attrs["href"] or "si=" in element.attrs["href"] ): - video_name = "?" + "?".join(element.attrs["href"].split("?")[1:]) - embed_template = f'<br /><iframe width="560" height="315" src="https://www.youtube.com/embed/{video_name}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>' + video_name = None + if "v=" in element.attrs["href"]: + video_name = element.attrs["href"].split("?v=")[1].split("&")[0] + if "si=" in element.attrs["href"]: + video_name = element.attrs["href"].split("?si=")[1].split("&")[0] + if "t=" in element.attrs["href"]: + video_name += "&t=" + element.attrs["href"].split("&t=")[1].split("&")[0] + embed_template = f'<iframe width="560" height="315" src="https://www.youtube.com/embed/{video_name}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>' element.replace_with(BeautifulSoup(embed_template, "html.parser")) return str(soup)