diff --git a/Kyoo/ClientApp/src/app/player/player.component.ts b/Kyoo/ClientApp/src/app/player/player.component.ts
index 63cb3f5d..350eee02 100644
--- a/Kyoo/ClientApp/src/app/player/player.component.ts
+++ b/Kyoo/ClientApp/src/app/player/player.component.ts
@@ -43,6 +43,8 @@ export class PlayerComponent implements OnInit
playMethod: method;
private player: HTMLVideoElement;
+ private dashPlayer: dashjs.MediaPlayerClass = MediaPlayer().create();
+ private dashPlayerInitialized: boolean = false;
private thumb: HTMLElement;
private progress: HTMLElement;
private buffered: HTMLElement;
@@ -355,7 +357,6 @@ export class PlayerComponent implements OnInit
init()
{
let queryMethod: string = this.route.snapshot.queryParams["method"];
- console.log("Query method: " + queryMethod);
if (queryMethod)
this.playMethod = method[queryMethod];
else
@@ -380,19 +381,22 @@ export class PlayerComponent implements OnInit
selectPlayMethod()
{
+ if (this.dashPlayerInitialized)
+ this.dashPlayer.reset();
if (this.playMethod == method.direct)
{
this.player.src = "/video/" + this.item.link;
+ this.dashPlayerInitialized = false;
}
else if (this.playMethod == method.transmux)
{
- var dashPlayer = MediaPlayer().create();
- dashPlayer.initialize(this.player, "/video/transmux/" + this.item.link + "/", true);
+ this.dashPlayer.initialize(this.player, "/video/transmux/" + this.item.link + "/", true);
+ this.dashPlayerInitialized = true;
}
else
{
- var dashPlayer = MediaPlayer().create();
- dashPlayer.initialize(this.player, "/video/transcode/" + this.item.link + "/", true);
+ this.dashPlayer.initialize(this.player, "/video/transcode/" + this.item.link + "/", true);
+ this.dashPlayerInitialized = true;
}
}
diff --git a/Kyoo/ClientApp/src/index.html b/Kyoo/ClientApp/src/index.html
index 374f4142..b0196e0c 100644
--- a/Kyoo/ClientApp/src/index.html
+++ b/Kyoo/ClientApp/src/index.html
@@ -8,7 +8,6 @@
-
diff --git a/Kyoo/InternalAPI/Transcoder/Transcoder.cs b/Kyoo/InternalAPI/Transcoder/Transcoder.cs
index 1326b1cd..97511f6d 100644
--- a/Kyoo/InternalAPI/Transcoder/Transcoder.cs
+++ b/Kyoo/InternalAPI/Transcoder/Transcoder.cs
@@ -53,13 +53,13 @@ namespace Kyoo.InternalAPI
if (File.Exists(manifest))
return manifest;
// Added an await and removed the while -> await because the dynamic dash file can't be played for now (maybe ffmpeg doesn't process in the playback order).
- await Task.Run(() =>
+ /*await */Task.Run(() =>
{
transmuxFailed = TranscoderAPI.transmux(episode.Path, manifest.Replace('\\', '/'), out playableDuration) != 0;
- playableDuration = float.MaxValue;
+ //playableDuration = float.MaxValue;
});
- //while (playableDuration < 20 || (!File.Exists(manifest) && !transmuxFailed))
- // await Task.Delay(10);
+ while (playableDuration < 20 || (!File.Exists(manifest) && !transmuxFailed))
+ await Task.Delay(10);
return transmuxFailed ? null : manifest;
}
diff --git a/Kyoo/Program.cs b/Kyoo/Program.cs
index bfa5105f..06c7b1e2 100644
--- a/Kyoo/Program.cs
+++ b/Kyoo/Program.cs
@@ -13,7 +13,7 @@ namespace Kyoo
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
- .UseKestrel()
+ .UseKestrel((config) => { config.AddServerHeader = false; })
.UseUrls("http://*:5000")
.UseStartup();
}
diff --git a/Kyoo/Startup.cs b/Kyoo/Startup.cs
index 9b5ae401..908f5709 100644
--- a/Kyoo/Startup.cs
+++ b/Kyoo/Startup.cs
@@ -53,6 +53,19 @@ namespace Kyoo
app.UseHsts();
}
+ app.Use((ctx, next) =>
+ {
+ ctx.Response.Headers.Remove("X-Powered-By");
+ ctx.Response.Headers.Remove("Server");
+ ctx.Response.Headers.Add("Feature-Policy", "autoplay 'self'; fullscreen");
+ ctx.Response.Headers.Add("Content-Security-Policy", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'");
+ ctx.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
+ ctx.Response.Headers.Add("Referrer-Policy", "no-referrer");
+ ctx.Response.Headers.Add("Access-Control-Allow-Origin", "null");
+ ctx.Response.Headers.Add("X-Content-Type-Options", "nosniff");
+ return next();
+ });
+
//app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();