diff --git a/src/components/Player.tsx b/src/components/Player.tsx
index 0d40e519106dc02adde0cac2f230d6042cf588ae..845b8cf06bb25b665a540f969d095cc0f2ea0b71 100644
--- a/src/components/Player.tsx
+++ b/src/components/Player.tsx
@@ -30,6 +30,7 @@ import { PlayerData } from "@/pages/dynamic_player";
 import { useLanguage } from "./LanguageProvider";
 import { StylizedText } from "./StylizedText";
 import { ApiError } from "@/api/ApiError";
+import Head from "next/head";
 
 function VideoPlayer({ lecture, className }: { lecture: lecture; className?: string }) {
     const videoRef = useRef<HTMLVideoElement>(null);
@@ -610,6 +611,7 @@ export function EmbeddedPlayer({ playerData }: { playerData: ResourceType<Player
 
 export default function Player({ playerData }: { playerData: ResourceType<PlayerData> }) {
     const { course, lectureId, perms, loaderHadUserInfo } = playerData.read()!;
+    const api = useBackendContext();
     const userContext = useUserContext();
     const hasUserInfo = userContext.hasUserInfo();
     const { language } = useLanguage();
@@ -773,6 +775,16 @@ export default function Player({ playerData }: { playerData: ResourceType<Player
 
     return (
         <>
+            <Head>
+                <meta property="og:title" content={`${course.short_name} - ${lecture.title}`} />
+                <meta property="og:description" content={course.description} />
+                <meta
+                    property="og:image"
+                    content={
+                        lecture.thumbnail_url ?? `${api.assetUrl()}/thumbnail/l_${lecture.id}.jpg`
+                    }
+                />
+            </Head>
             <Title title={`${course.short_name} - ${lecture.title}`} />
             <div className="card">
                 <div className="card-header d-flex">
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 88928ba27a009f17fd986e8525f965733187aabe..feb4f4c7fd9aa318f109550543b88dcfe40ff84f 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -22,6 +22,7 @@ export default function App({ Component, pageProps }: AppProps) {
                     name="commit"
                     content={process.env.NEXT_PUBLIC_GIT_COMMIT_HASH ?? "unknown"}
                 />
+                <meta name="og:site_name" content="VideoAG" />
             </Head>
             <Title title="Video AG" />
             <ReloadBoundary
diff --git a/src/pages/dynamic_player.tsx b/src/pages/dynamic_player.tsx
index e64327472dce6e5195bd497f5b2af2bf07fcaaec..50ebbdabc8627d3c75e4bf6b60f9c9bb7830f2d4 100644
--- a/src/pages/dynamic_player.tsx
+++ b/src/pages/dynamic_player.tsx
@@ -99,7 +99,8 @@ export function ActualRedirector() {
 }
 
 export default function DynamicPlayer() {
-    // The following is a hack to force nextjs to not pre-render this page at build time (which obv wouldnt make sense)
+    // The following is a hack to force nextjs to not pre-render this page at build time
+    // this needs to be done because it is not known which lecture is going to be watched (this is dynamic!)
     const [clientsideForcer, setClientsideForcer] = useState(false);
     useEffect(() => {
         setClientsideForcer(true);