Skip to content

Case sensitivity for some media files, resulting in 404 not found #1619

@eric-vlaanderen

Description

@eric-vlaanderen

Two API calls for the same file which use a different case for the title result in different responses. So far it seems that all uppercase or lower case results in a response, but sentence case results in a 404.

For example

https://api.universalmediaserver.com/api/media/video/v2?title=UNTAMED&year=2025&season=1&episode=1&filename=Untamed+2025+S01E01
or
https://api.universalmediaserver.com/api/media/video/v2?title=untamed&year=2025&season=1&episode=1&filename=Untamed+2025+S01E01

(upper case) results in

{"_id":"69dfe454d2197ce52d1a9a77","actors":["Eric Bana","Sam Neill","Rosemarie DeWitt","Lily Santiago","Wilson Bethel"],"credits":[{"cast":[{"adult":false,"gender":2,"id":8783,"known_for_department":"Acting","name":"Eric Bana","original_name":"Eric Bana","popularity":2.8002,"profile_path":"/xIjQVywxkymHbbSO7lD2F9f377W.jpg","character":"Kyle Turner","credit_id":"65f1002f99259c01865c96c1","order":0},{"adult":false,"gender":2,"id":4783,"known_for_department":"Acting","name":"Sam Neill","original_name":"Sam Neill","popularity":3.0201,"profile_path":"/iIfuxalf37xUayuGyK0zG7z6WEZ.jpg","character":"Paul Souter","credit_id":"6675a407acf2d1b910fc8528","order":1},{"adult":false,"gender":1,"id":14892,"known_for_department":"Acting","name":"Rosemarie DeWitt","original_name":"Rosemarie DeWitt","popularity":1.7515,"profile_path":"/44sxIdGtYN24R14OmnZbCpcd8J8.jpg","character":"Jill Bodwin","credit_id":"6675c0e525a4903b11b05433","order":2},{"adult":false,"gender":1,"id":3174601,"known_for_department":"Acting","name":"Lily Santiago","original_name":"Lily Santiago","popularity":0.5178,"profile_path":"/pdGmjeg5YzZQfbUuS3KofQqDHTc.jpg","character":"Naya Vasquez","credit_id":"66799a92e40a4ff7e7d3b041","order":3},{"adult":false,"gender":2,"id":85779,"known_for_department":"Acting","name":"Wilson Bethel","original_name":"Wilson Bethel","popularity":2.3484,"profile_path":"/xHLjGi9onJXwHoZALZ9pLBVnH5x.jpg","character":"Shane Maguire","credit_id":"687f6a243855a70164244f72","order":4}],"crew":[{"job":"Director","department":"Directing","credit_id":"687f1f670e4818a999529373","adult":false,"gender":2,"id":56789,"known_for_department":"Writing","name":"Thomas Bezucha","original_name":"Thomas Bezucha","popularity":0.4584,"profile_path":"/uTWVZBasLQpJpdg9gXN89rNvHIT.jpg"},{"job":"Writer","department":"Writing","credit_id":"687fd35509a8f9ddc038e174","adult":false,"gender":1,"id":2057200,"known_for_department":"Production","name":"Elle Smith","original_name":"Elle Smith","popularity":0.1936,"profile_path":null},{"job":"Writer","department":"Writing","credit_id":"687fd37e39849ffe8dd9996b","adult":false,"gender":2,"id":64785,"known_for_department":"Writing","name":"Mark L. Smith","original_name":"Mark L. Smith","popularity":0.6618,"profile_path":"/d3OP4zzXT2PFk8egnlEkta1gzRR.jpg"},{"job":"Director of Photography","department":"Camera","credit_id":"68a55e2e01e7fb6b975dd38c","adult":false,"gender":2,"id":1163706,"known_for_department":"Camera","name":"Michael McDonough","original_name":"Michael McDonough","popularity":0.1916,"profile_path":null},{"job":"Editor","department":"Editing","credit_id":"68a55e3f069561184025edb9","adult":false,"gender":2,"id":3829076,"known_for_department":"Editing","name":"Ryan Jones","original_name":"Ryan Jones","popularity":0.0557,"profile_path":null},{"job":"First Assistant Director","department":"Directing","credit_id":"68a55e8f925acb319425efa8","adult":false,"gender":2,"id":29297,"known_for_department":"Directing","name":"Nico Sachse","original_name":"Nico Sachse","popularity":0.0979,"profile_path":null},{"job":"Second Assistant Director","department":"Directing","credit_id":"68a55ea5c9cb5d90948349a5","adult":false,"gender":0,"id":2568127,"known_for_department":"Directing","name":"Sina Nazarian","original_name":"Sina Nazarian","popularity":0.0784,"profile_path":null}],"guest_stars":[{"character":"Jay Stewart","credit_id":"687ef76323e3f6d09038dd9d","order":500,"adult":false,"gender":2,"id":17688,"known_for_department":"Acting","name":"Raoul Max Trujillo","original_name":"Raoul Max Trujillo","popularity":1.016,"profile_path":"/dIfHIt1pgnYW9oCksc0DdoY5Mt5.jpg"},{"character":"Lawrence Hamilton","credit_id":"687ef789da3bd92a1a55d4ab","order":501,"adult":false,"gender":2,"id":164390,"known_for_department":"Acting","name":"Joe Holt","original_name":"Joe Holt","popularity":0.5565,"profile_path":"/eA65Gimsbz2HpyBVbypQTBmB7fH.jpg"},{"character":"Scott Bodwin","credit_id":"687ef7c8fe85a1d545244bfc","order":502,"adult":false,"gender":2,"id":56162,"known_for_department":"Acting","name":"Josh Randall","original_name":"Josh Randall","popularity":0.8913,"profile_path":"/2Ff16QWWbCF4Crs8oTBFM3S9Mar.jpg"},{"character":"Caleb","credit_id":"687ef7eb256e60aa3c52945b","order":503,"adult":false,"gender":2,"id":4717803,"known_for_department":"Acting","name":"Ezra Wilson","original_name":"Ezra Wilson","popularity":0.1148,"profile_path":null},{"character":"Mary Souter","credit_id":"687ef81a90c737dad716a62a","order":504,"adult":false,"gender":1,"id":1219552,"known_for_department":"Acting","name":"Iris Quinn","original_name":"Iris Quinn","popularity":0.6208,"profile_path":"/rajESK5oqBRX5F0YA8T78Ticg95.jpg"},{"character":"Chuck Edmund","credit_id":"687ef838692b97576e38df18","order":505,"adult":false,"gender":2,"id":52705,"known_for_department":"Acting","name":"Zak Santiago","original_name":"Zak Santiago","popularity":0.5458,"profile_path":"/hzFNa8a6rAD9FtWqJoXj20F2xdq.jpg"},{"character":"Belayer","credit_id":"687ef84ff56b89c49b5292dc","order":506,"adult":false,"gender":2,"id":1860399,"known_for_department":"Acting","name":"Adrian Persad","original_name":"Adrian Persad","popularity":0.1421,"profile_path":null},{"character":"Lead Climber","credit_id":"687ef87ebf9903a48bf76f23","order":507,"adult":false,"gender":2,"id":3320749,"known_for_department":"Crew","name":"Colton Belley","original_name":"Colton Belley","popularity":0.0429,"profile_path":null},{"character":"Wiseman","credit_id":"687ef89d3f1f6bc2bed99449","order":508,"adult":false,"gender":2,"id":1368520,"known_for_department":"Acting","name":"Jason Burkart","original_name":"Jason Burkart","popularity":0.4558,"profile_path":"/mpnyAPpkDG2PxhZCwJmMqb6oNjr.jpg"},{"character":"Bruce Milch","credit_id":"687f6a443855a70164244f78","order":529,"adult":false,"gender":2,"id":1334139,"known_for_department":"Acting","name":"William Smillie","original_name":"William Smillie","popularity":0.4066,"profile_path":"/tDQ1cWAbzOUWcCb4EMoeadHed12.jpg"},{"character":"Taylor Bodwin","credit_id":"68819c0a3f67cfd7aa55e369","order":530,"adult":false,"gender":1,"id":2347145,"known_for_department":"Acting","name":"Ellexis Wejr","original_name":"Ellexis Wejr","popularity":0.1004,"profile_path":"/uV5m7M3LxZfSX4bSGrAV1L95rR8.jpg"},{"character":"Gael Vasquez","credit_id":"68a55f3a1a7c0d71dd25ee6e","order":543,"adult":false,"gender":2,"id":5637222,"known_for_department":"Acting","name":"Omi Fitzpatrick-Gonzales","original_name":"Omi Fitzpatrick-Gonzales","popularity":0.0143,"profile_path":null},{"character":"Sadie Souter","credit_id":"68a55f63fbd92c1f6b834908","order":544,"adult":false,"gender":1,"id":5637223,"known_for_department":"Acting","name":"Julianna Alarcon","original_name":"Julianna Alarcon","popularity":0.0143,"profile_path":null},{"character":"Rachel Bodwin","credit_id":"68a55fa2d20a2ec258a813fe","order":545,"adult":false,"gender":1,"id":5637225,"known_for_department":"Acting","name":"Sonja Kathleen Perperidis","original_name":"Sonja Kathleen Perperidis","popularity":0.0071,"profile_path":null},{"character":"Lucy Cook","credit_id":"68a55ff157fca28adffd2469","order":546,"adult":false,"gender":1,"id":3821010,"known_for_department":"Acting","name":"Ezra Franky","original_name":"Ezra Franky","popularity":0.0379,"profile_path":"/rPUN92bJFlwtJ7jEPsV4A4fwKcY.jpg"}]}],"directors":["Thomas Bezucha"],"episode":"1","externalIDs":[{"imdb_id":"tt31719522","freebase_mid":null,"freebase_id":null,"tvdb_id":10373538,"tvrage_id":null,"wikidata_id":null}],"genres":[],"images":[{"stills":[{"aspect_ratio":1.778,"height":1080,"iso_3166_1":null,"iso_639_1":null,"file_path":"/pC6zcCBxN7rm8yOuM70QJI7HgnY.jpg","vote_average":0,"vote_count":0,"width":1920}]}],"imdbID":"tt31719522","productionCompanies":[],"productionCountries":[],"plot":"When a woman fatally falls from El Capitan, special agent Kyle Turner suspects it wasn't an accident — and that the truth may lie deep within Yosemite.","posterRelativePath":"/pC6zcCBxN7rm8yOuM70QJI7HgnY.jpg","released":"2025-07-17T00:00:00.000Z","season":"1","seriesIMDbID":"tt31710822","title":"A Celestial Event","tmdbID":5208645,"tmdbTvID":248852,"type":"episode","year":"2025","updatedAt":"2026-04-15T19:17:40.640Z"}

However, the same call with sentence case for the name, i.e.

https://api.universalmediaserver.com/api/media/video/v2?title=Untamed&year=2025&season=1&episode=1&filename=Untamed+2025+S01E01

results in:

{"error":"Metadata not found."}

So far, I have noticed this for:
Untamed
War Of The Worlds
https://api.universalmediaserver.com/api/media/video/v2?title=War+of+the+Worlds&year=2019&season=1&episode=2&filename=War+Of+The+Worlds+2019+S01E02
( i.e. either of "War+of+the+Worlds", "War+Of+The+Worlds" result in a 404 - however other case combinations appear to work just fine - i.e "War+Of+The+worlds", "War+Of+the+worlds", "War+of+the+worlds", "war+of+the+worlds", "war+of+the+Worlds", "war+of+The+Worlds", "war+Of+The+Worlds", "War+of+The+Worlds", "War+of+The+worlds" etc.. )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions