lizardbyte / retroarcher-plex Goto Github PK
View Code? Open in Web Editor NEWRetroArcher metadata plugin for Plex.
License: GNU Affero General Public License v3.0
RetroArcher metadata plugin for Plex.
License: GNU Affero General Public License v3.0
Is your feature request related to a problem or just thought of something cool? Please describe.
Rainway could be an additional option for game straeming
Additional context
https://rainway.com/
Is your feature request related to a problem or just thought of something cool? Please describe.
RetroArch does not display thumbnails in history of items played from CLI
Describe the solution you'd like
RetroArch should display the thumbnails.
Describe alternatives you've considered
For each item in content_history.lpl
file look in each <system_name>.lpl file
and match the path (split by # for archives). If it matches replace the item in the content_history.lpl
with that of what's in the <system_name>.lpl file
. Rewrite the content_history.lpl
file.
Additional context
https://www.reddit.com/r/RetroArch/comments/l8okd6/boxart_in_history_for_games_run_from_command_line/?utm_source=share&utm_medium=web2x&context=3
Is your feature request related to a problem or just thought of something cool? Please describe.
A user on Discord requested the ability to use Launchbox database for metadata.
Describe the solution you'd like
The metadata (for platforms) is stored in LaunchBox\Data\Platforms\*.xml
The metadata (for playlists eg Doom) is stored in LaunchBox\Data\Playlists\*.xml
There is also a full metadata stored here: LaunchBox\Metadata\Metadata.xml
The images are stored in LaunchBox\Images\*
Theme music is stoed in `LaunchBox\Music*'
Theme videos are stored in LaunchBox\Videos\*
... use them as game specific "pre-rolls"?
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Have an option for each type of LaunchBox data.
Describe the bug
Roms inside folders may behave a little differently during scanning and/or matching.
Expected behavior
Testing needed. We can using DOOM folder (PRBOOM) as an example which would need .wad files.
Use the folder name as the ROM name or have user rename wad files?
romType
inside dPlatformMapping dictionary is intended to help handle this. 0 means standard rom file, 1 means folder rom.
Is your feature request related to a problem or just thought of something cool? Please describe.
Add Giant Bomb for metadata
Additional context
https://www.giantbomb.com/api/
Is your feature request related to a problem or just thought of something cool? Please describe.
PS4 and PS5 are able to be remote streamed to mobile devices and Windows PC. Let's try to integrate into RetroArcher.
Describe the solution you'd like
Link RetroArcher to a playstation and/or sony account.
A list of purchased games can be seen at this url (https://library.playstation.com/recently-purchased) after the user is logged in.
This home assistant integration (https://www.home-assistant.io/integrations/ps4/) is able to launch playstation apps and games. Let's use it as reference. They also collect the games as they are normally launched; however I think it's better to just get the full list directly from the website.
This is a game page example (https://store.playstation.com/en-us/product/UP0002-CUSA08829_00-CODWARZONE000001)... I don't actually have a playstation linked to my account... Does the page have a start game button if the console is linked?
Here is the Remote play app on android (https://play.google.com/store/apps/details?id=com.playstation.remoteplay&hl=en_US&gl=US)... I don't know if it works on Android TV (probably need to sideload it)
Windows download and other information available here (https://www.playstation.com/en-us/remote-play/)
Is your feature request related to a problem or just thought of something cool? Please describe.
Get machine uuid and app id automatically.
Describe the solution you'd like
The machine uuid can be gotten from this url. http://localhost:47989/serverinfo This will work for any game stream implementation (Nvidia, Sunshine, Open-Stream, etc, etc.)
A temporary method to get the app id... It can be found in these documents for nvidia.
Look for Title=RetroArcher
in these files. Then grab the next AppId=xxxxxxxxxxxx
C:\ProgramData\NVIDIA Corporation\nvstreamersvr\nvstreamsvcOld.log
C:\ProgramData\NVIDIA Corporation\nvstreamersvr\nvstreamsvcCurrent.log
Look for Title=RetroArcher
in these files. Then look for <AppTitle>RetroArcher</AppTitle>
. Then grab the next <ID>xxxxxxxxx</ID>
C:\ProgramData\NVIDIA Corporation\nvstreamersvr\nssOld.log
C:\ProgramData\NVIDIA Corporation\nvstreamersvr\nssCurrent.log
Additional context
The app id can probably be gotten from this url; however authentication is required. This would probably be better than parsing the logs, but will need to reverse engineer moonlight to use this method and probably need assistance as well. http://localhost:47989/applist
Tried finding where this file is hosted from locally but couldn't.
Is your feature request related to a problem or just thought of something cool? Please describe.
Add Screenscraper.fr for metadata
Additional context
https://translate.google.com/translate?hl=en&sl=fr&tl=en&u=https://www.screenscraper.fr/webapi.php?alpha=0&numpage=0&langue=en
We can search by rom hash, I believe
Limited to a few calls at once depending on user credentials. Need a way to tell Plex how many requests are active before starting a new call, as plex can make several searches and updates simultaneously.
Describe the bug
If the start video is changed RetroArcher will not generate a new video.
Additional context
At start of script hash each start video and create a dictionary.
At start of each directory scan, check the system video hash against a saved json file. If it matches then skip generating (assuming the rom already existed). If it doesn't match create a new video for every rom found.
Save the dictionary over the old saved json file (after scanning is 100% complete)
Is your feature request related to a problem or just thought of something cool? Please describe.
Some users do want to game stream and would prefer to play locally on each client.
Describe the solution you'd like
Use ADB to transfer the below to and from server:
Obviously transfer to client when game is played from Plex.
When to transfer back to server?
How to launch RetroArch on android with specific core and rom?
Is your feature request related to a problem or just thought of something cool? Please describe.
Plex posters look best in 2:3 aspect ratio. IGDB/Twitch prefers 3:4 ratio. This could lead to many games looking ugly in Plex.
Describe the solution you'd like
StreamGridDB offers posters in 600x900 (2:3) ratio.
Additional context
https://www.steamgriddb.com/
Is your feature request related to a problem or just thought of something cool? Please describe.
Add RAWG for metadata
Additional context
https://rawg.io/apidocs
If hard drive isn't spun up desktop of server will show on Moonlight client briefly before emulator is started.
Rom path is found in this line:
https://github.com/ReenigneArcher/RetroArcher.bundle/blob/5a356ad8cdaaa15ffed7355d41f15848d003e54c/Contents/Code/retroarcher/retroarcher.py#L311
Emulator starts in this line:
https://github.com/ReenigneArcher/RetroArcher.bundle/blob/5a356ad8cdaaa15ffed7355d41f15848d003e54c/Contents/Code/retroarcher/retroarcher.py#L363
Should hash the file after L311 to initiate a hard drive spin up and locate the file. A partial hash should be sufficient.
Describe the bug
New games cannot be played while scanner is still running. (The json file isn't written until the end)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Be able to play the game right away
Screenshots
n/a
Server (please complete the following information):
Client(please complete the following information if applicable):
Gamepad(please complete the following information if applicable):
Additional context
Add any other context about the problem here.
Is your feature request related to a problem or just thought of something cool? Please describe.
After making the code open source, add an up vote system for enhancement requests
Describe the solution you'd like
https://featureupvote.com/opensource/
Tautulli will have a large delay when adding media to it's database.
The script will eventually execute after all the media has been added.
Maybe Tautulli devs could make some adjustments to give a notification agent instant priority.
Describe the bug
Extras from youtube will not play
To Reproduce
Steps to reproduce the behavior:
s1001
Expected behavior
Extras should play
Additional context
The agent is using a youtube Service plugin provided by plex. The plugin is no longer functional.
Trailer Addict has a Service that plays extras from their site. Could we replicate this somehow for YouTube?
Other option is to save each extra locally (yuck) by youtube ID as to not have duplicates at all. Let user specify save directory.
Is your feature request related to a problem or just thought of something cool? Please describe.
Add some ffmpeg settings to specify how file is generated
Describe the solution you'd like
These options should be included:
These options would be nice: (remove all these from platform mapping table)... could probably get font from Fonts\platform name folder in Resources directory...
Describe the bug
During testing only Nintendo 64 has been available.
Expected behavior
Before release we need to enable all (or atleast a lot more) of the RetroArch supported systems.
Is your feature request related to a problem or just thought of something cool? Please describe.
Similar to #35
Is your feature request related to a problem or just thought of something cool? Please describe.
Finish IGDB metadata. Add reviews (critic and user) and related games
Additional context
Reviews and related games are not available through API they were removed; don't know if they will add these endpoints back.
Is your feature request related to a problem or just thought of something cool? Please describe.
It would be amazing if RetroArcher worked with remote multiplayer.
Describe the solution you'd like
Parsec could be an option to accomplish this.
Additional context
Windows servers only
Is your feature request related to a problem or just thought of something cool? Please describe.
It would be amazing if RetroArcher could launch Xbox One/Series S/X games.
Describe the solution you'd like
List and launch xbox one games (apps optional) in RetroArcher. Give the option to get posters from console or from standard agent database. See if it's possible to get game metadata from console or Microsoft Store.
For android clients would need to start xbox game stream through official xbox app.
Describe alternatives you've considered
The new xbox integration for Home Assistant can list and start games/apps on an xbox console.
Additional context
This is related to #2
\Contents\Libraries\Modules
... remove entire foldersys.path.append(paths['retroarcherModulesDir'])
from retroarcher.pysys.path.append(paths['agentModulesDir'])
from retroarcher.pyIs your feature request related to a problem or just thought of something cool? Please describe.
Steam Link support chord combinations, maybe we can use it for a RetroArcher client.
Describe the solution you'd like
Add Steam Link as game stream client app. Can we have app intents and launch directly to a specific game? Do we need app intents or just launch Steam in big picture mode on the server?
Additional context
Windows and Linux servers!
Is your feature request related to a problem or just thought of something cool? Please describe.
Could it be possible to use the Xbox One Plex app to initiate RetroArcher?
Describe the solution you'd like
Game stream on Xbox One from Plex server.
Describe alternatives you've considered
The new xbox integration for Home Assistant can list and start games/apps on an xbox console. Using the Microsoft Wireless Display Adapter app and maybe the AirServer Xbox Edition app, it could be possible to game stream by mirroring the servers display to the console.
Could switch back to Plex app automatically once game session ended (user exits emulator or rdp session ends).
Additional context
The Wireless Display app does support game pad passthrough. I don't know if the AirServer app supports this or not.
Is your feature request related to a problem or just thought of something cool? Please describe.
Moonlight won't work with AMD GPUs.
Describe the solution you'd like
Use AMD Re-Live as client app. Need to get an AMD GPU for testing and see if we can use app intents to launch the "game" we want directly.
Additional context
Fairly small user base for AMD GPUs, but would still like to support.
https://www.reddit.com/r/RetroArcher/comments/l6f6ey/what_gpu_are_you_using/?utm_source=share&utm_medium=web2x&context=3
Plex says they don't want to display an empty image, or default image...
https://forums.plex.tv/t/how-can-i-really-actually-disable-video-thumbnails/141641/6
https://www.reddit.com/r/PleX/comments/47wfqc/is_there_a_way_to_prevent_plex_from_generating_a/
One possible solution is to TRY putting our own generic image with the video and see if Plex still tries to generate one.
Another could be to use PlexAPI and delete the last image in poster and art... not sure if it's possible or if Plex will just try to generate it again and again.
And another option could be to use PlexAPI to REPLACE the files generated by Plex. This seems feasible!
Is your feature request related to a problem or just thought of something cool? Please describe.
Add game stream support for Debian/Ubuntu Linux
Describe the solution you'd like
If GeForce Experience is working on Linux we can use that, otherwise Sunshine may be an option.
Additional context
Large Linux user base. Would like to include this for sure.
https://www.reddit.com/r/RetroArcher/comments/l6f505/where_is_your_server_installed/?utm_source=share&utm_medium=web2x&context=3
Is your feature request related to a problem or just thought of something cool? Please describe.
Add TheGamesDB for metadata
Additional context
https://api.thegamesdb.net/
Is your feature request related to a problem or just thought of something cool? Please describe.
Separate certain retroarch aspects depending on user. (game saves, re-map files for example)
Describe the solution you'd like
Separate common folders from user specific folders.
User specific folders/files would be:
Is your feature request related to a problem or just thought of something cool? Please describe.
Need to develop clear instructions for using this plugin.
Describe the solution you'd like
Start with instructions for server setup.
Then follow with client setup including how to sideload apps.
Then finish configuration.
Is your feature request related to a problem or just thought of something cool? Please describe.
Add additional emulator support
Describe the solution you'd like
Include RPCS3 emulator with plugin.
Also include the option for each system to specify a custom path to an emulator instead of using the one included with the plugin. If the path is empty use the one included, else use the one in the path.
Additional context
Need Windows and Linux folder structure.
Is your feature request related to a problem or just thought of something cool? Please describe.
Roms with alternate names, such as region specific names, don't match well with IGDB.
Describe the solution you'd like
Search using the alternate name end point in the api instead of exact matching.
Describe alternatives you've considered
Build a complete rom name dictionary matching each rom name to it's appropriate id on each database. This would take a ton of manpower and be nearly impossible.
Describe the bug
Scanner is re-encoding videos even when start videos didn't change
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Don't re-encode videos that are already encoded (assuming start videos didn't change AND settings didn't change)
Screenshots
n/a
Server (please complete the following information):
Client(please complete the following information if applicable):
Gamepad(please complete the following information if applicable):
Additional context
Add any other context about the problem here.
Is your feature request related to a problem or just thought of something cool? Please describe.
Theme songs from http://gamethemesongs.com/
Describe the solution you'd like
Naming of the songs is terrible on the site and there is not really any way to search by metadata (game name for example). I think a dictionary is required to make this work.
themeSongs = {
0 : {
'title' : 'Goldeneye 007 - N64',
'url' : 'http://blahblahblah/12345'
'romNames' : ['Nintendo 64\\007 - GoldenEye (Europe)', 'Nintendo 64\\007 - GoldenEye (Japan)', 'Nintendo 64\\007 - GoldenEye (USA)', 'etc', 'etc', 'etc' ]
},
1 : {.......},
2 : etc, etc, etc.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
The entire website is backed up on wayback machine. So we can try to get the url and if we get a bad request then we modify the url to be the wayback machine url.
Is your feature request related to a problem or just thought of something cool? Please describe.
The request has been on Plex forum since 2012
Describe the solution you'd like
Add a method for viewing comic books. Could be similar to adding additional emulators. Streaming could stream the computer desktop as long as the reader supports gamepad input (I think most Windows store apps support this). Copy to client could be better if there are good comic readers on Android TV.
Additional context
https://www.reddit.com/r/RetroArcher/comments/l9iz06/ebooks_and_comics/?utm_source=share&utm_medium=web2x&context=3
https://forums.plex.tv/t/plexreader-comics-books-pdfs/26684/840?u=reenignearcher
This will be implemented only after we add support for at least one more emulator (to ensure we have a good structure for adding additional emulators)
We will need a platform start video (similar to marvel movie intro? ... maybe the plex Preroll like this?)
Platform names will be comic_book_reader
and e_book_reader
(can sort differently and different platform start video)
Comicvine for comic book metadata? https://comicvine.gamespot.com/api/
Books
ISBNdb for book metadata... https://isbndb.com/apidocs/v2
OpenLibrary... https://openlibrary.org/developers/api
Is your feature request related to a problem or just thought of something cool? Please describe.
Using XMB menu driver in RetroArch it's possible to apply dynamic backgrounds. It would be cool to apply the fanarts of the game launched as the backgrounds.
Describe the solution you'd like
Using PlexAPI we can get the background files. item.arts()
according to Blacktwin in PlexAPI discord server
Save the images as these paths inside the RetroArch directory. (check the order, so it appears same as in RetroArch)
If there are not enough arts then reuse them.
Additional context
Add any other context (information, screenshots, related repositories, hyperlinks) about the feature request here.
Is your feature request related to a problem or just thought of something cool? Please describe.
Add Kodi as a client player for RetroArcher
Describe the solution you'd like
It could be possible to stream to kodi using a kodi plug-in. Not sure if this plug-in actually works (https://github.com/kodi-game/game.moonlight) or what clients it supports...
Kodi should be able to be controlled through http api requests. (On original xbox with xbmc it was possible to launch a program or run shell commands)
Plex won't allow folder thumbs in folder view
https://forums.plex.tv/t/no-thumbnails-in-folder-view/121258
Describe the bug
Need to determine the licensing for this project before opening the repository up to anyone
Is your feature request related to a problem or just thought of something cool? Please describe.
Pre-configured hotkeys would be beneficial for users not experiences in setting up retroarch
Is your feature request related to a problem or just thought of something cool? Please describe.
Add Moby Games for metadata
Additional context
https://www.mobygames.com/info/api
Is your feature request related to a problem or just thought of something cool? Please describe.
Multi disk games have always been a hurdle in RetroArch. I believe the best practice solution is to use m3u playlist files.
Describe the solution you'd like
Generate the m3u file automatically for the user. Need to have very well defined logic for this.
For systems specified as multi disk in the platform mapping dictionary.
(Disk
or (Disc
or etc. etc. create a new list with the name of the rom before the disk number tag.Describe alternatives you've considered
Force the user to supply their own m3u files.
Additional context
Add any other context (information, screenshots, related repositories, hyperlinks) about the feature request here.
Is your feature request related to a problem or just thought of something cool? Please describe.
Adding ability to scan and launch games from PC game stores would be a nice addition.
Describe the solution you'd like
We can possibly use this (https://github.com/derrod/legendary) to tie into Epic Games.
Is your feature request related to a problem or just thought of something cool? Please describe.
If we are to include RetroArch we need to include for several platforms.
Describe the solution you'd like
Include folder structure, cores, etc. for each platform (linux, win32, win64)
Separate common folders such as thumbnails, overlays, etc.
List of common folders: (needs lots of testing)
Need to improve scanning
Firstly...
media
folder to games
At start of scanning...
Also...
Is your feature request related to a problem or just thought of something cool? Please describe.
Instead of the user needing to setup the notification agent in Tautulli, I believe it could be possible to automate this.
Describe the solution you'd like
Use tautulli API to configure the notification agent. Here is a python wrapper for the Tautulli api that should be able to help achieve this task.
Describe alternatives you've considered
None.
Additional context
Add any other context (information, screenshots, related repositories, hyperlinks) about the feature request here.
Describe the bug
When a poster on igdb is changed, the new poster is added to plex, but not as the primary.
When any image is removed from igdb, it is not removed from plex.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Replace the old igdb poster with the new poster (use igdb-poster as the name)
Remove photos removed from igdb (need to add igdb as a prefix in the name, and check if they're all still on the site)
Screenshots
If applicable, add screenshots to help explain your problem.
Server (please complete the following information):
Client(please complete the following information if applicable):
Gamepad(please complete the following information if applicable):
Additional context
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.