diff --git a/src/videoag/api/types.ts b/src/videoag/api/types.ts
index b00c370d67489b9093d887231e2f5e53896e75bc..8e7b4489fa9614a93f0b4653b1b52228aeddbcbb 100644
--- a/src/videoag/api/types.ts
+++ b/src/videoag/api/types.ts
@@ -111,8 +111,8 @@ export interface publish_medium {
     medium_metadata: medium_metadata;
     title: string;
     url: string;
+    download_url?: string;
     visible?: boolean;
-    allow_download: boolean;
     include_in_player: boolean;
 }
 
diff --git a/src/videoag/course/DownloadManager.tsx b/src/videoag/course/DownloadManager.tsx
index 27b232835150ae167360e819e55f45f675399613..97473c177fb799f268a0fd5d4399f544ba1aa45c 100644
--- a/src/videoag/course/DownloadManager.tsx
+++ b/src/videoag/course/DownloadManager.tsx
@@ -229,7 +229,7 @@ async function downloadMedia(
 
         filesToDownload.push({
             lectureId: lecture.id,
-            url: medium.url,
+            url: medium.download_url!,
             // TODO file ending mp4
             // TODO lecture date and not id
             filename: `videoag_${course.handle}_${lecture.id}_${getMediumQualityName(medium)}.mp4`,
@@ -353,7 +353,7 @@ function DownloadAllLectureListItem({
     } else {
         const selectedMedium = media.find((m) => m.id == selectedMediumId);
         displayedProgress = (
-            <a href={selectedMedium?.url} download target="_blank">
+            <a href={selectedMedium?.download_url} download target="_blank">
                 <button
                     type="button"
                     className="btn btn-primary"
diff --git a/src/videoag/course/Medium.tsx b/src/videoag/course/Medium.tsx
index 8694cd1ecc9fcbe2aa47ece7932988580121f18b..54b50c72ca1eb37d61ac9470adcd4b71de4d0571 100644
--- a/src/videoag/course/Medium.tsx
+++ b/src/videoag/course/Medium.tsx
@@ -65,7 +65,7 @@ export function sortPublishMediaByQuality(media: publish_medium[]): publish_medi
 }
 
 export function getSortedDownloadablePublishMedia(media: publish_medium[]): publish_medium[] {
-    return sortPublishMediaByQuality(media.filter((m) => m.allow_download));
+    return sortPublishMediaByQuality(media.filter((m) => m.download_url !== undefined));
 }
 
 export function getSortedPlayerPublishMedia(media: publish_medium[]): publish_medium[] {
@@ -87,7 +87,7 @@ export function PublishMediumList({ publish_media }: { publish_media: publish_me
                         }
                     >
                         <span className="bi bi-download" />
-                        <a href={medium.url} className="mx-1">
+                        <a href={medium.download_url} className="mx-1">
                             {name}
                         </a>
                         {editMode && (
@@ -147,7 +147,7 @@ export function PublishMediumDownloadButton({
 
                         return (
                             <div key={medium.id} className={"d-flex align-items-center " + bgColor}>
-                                <Dropdown.Item href={medium.url} download>
+                                <Dropdown.Item href={medium.download_url} download>
                                     {name}
                                 </Dropdown.Item>
                                 {editMode && (