diff --git a/server/src/main/java/xyz/e3ndr/athena/service/simple_ui/UIRoutes.java b/server/src/main/java/xyz/e3ndr/athena/service/simple_ui/UIRoutes.java
index d7d1d7d..96b1800 100644
--- a/server/src/main/java/xyz/e3ndr/athena/service/simple_ui/UIRoutes.java
+++ b/server/src/main/java/xyz/e3ndr/athena/service/simple_ui/UIRoutes.java
@@ -407,6 +407,65 @@ public HttpResponse onViewSpecificMedia(SoraHttpSession session) {
String directors = String.join(", ", media.getInfo().getDirectors().stream().map((p) -> p.getName()).collect(Collectors.toList()));
String actors = String.join(", ", media.getInfo().getActors().stream().limit(4).map((p) -> p.getName()).collect(Collectors.toList()));
+ ContainerFormat container = null;
+ VideoCodec vCodec = null;
+ AudioCodec aCodec = null;
+ VideoQuality quality = null;
+
+ String userAgent = session.getHeader("User-Agent");
+ if (userAgent.contains("Nintendo WiiU")) {
+ container = ContainerFormat.TS;
+ vCodec = VideoCodec.H264_BASELINE;
+ aCodec = AudioCodec.AAC;
+ quality = VideoQuality.FHD;
+ } else if (userAgent.contains("Windows Phone") || userAgent.contains("Trident/")) {
+ container = ContainerFormat.MP4;
+ vCodec = VideoCodec.H264_HIGH;
+ aCodec = AudioCodec.AAC;
+ quality = VideoQuality.FHD;
+ } else {
+ container = ContainerFormat.MKV;
+ vCodec = VideoCodec.SOURCE;
+ aCodec = AudioCodec.SOURCE;
+ quality = VideoQuality.UHD;
+ }
+
+ String containerOptions = "";
+ for (ContainerFormat e : ContainerFormat.values()) {
+ if (e == container) {
+ containerOptions += "";
+ } else {
+ containerOptions += "";
+ }
+ }
+
+ String vCodecOptions = "";
+ for (VideoCodec e : VideoCodec.values()) {
+ if (e == vCodec) {
+ vCodecOptions += "";
+ } else {
+ vCodecOptions += "";
+ }
+ }
+
+ String aCodecOptions = "";
+ for (AudioCodec e : AudioCodec.values()) {
+ if (e == aCodec) {
+ aCodecOptions += "";
+ } else {
+ aCodecOptions += "";
+ }
+ }
+
+ String qualityOptions = "";
+ for (VideoQuality e : VideoQuality.values()) {
+ if (e == quality) {
+ qualityOptions += "";
+ } else {
+ qualityOptions += "";
+ }
+ }
+
return new HTMLBuilder()
.f("Go back")
.f("
")
@@ -444,7 +503,13 @@ public HttpResponse onViewSpecificMedia(SoraHttpSession session) {
.f(" ")
.f("")
.f("
")
- .f(" Watch", media.getId())
+ .f("