JosefNemec / Playnite

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
https://playnite.link
MIT License
9.43k stars 504 forks source link

Humble Bundle integration #112

Closed janforster closed 4 years ago

janforster commented 7 years ago

Hi,

One more platform that would be nice to integrate with is the Humble Bundle store. There are some applications that integrate against their API for download of games (https://pypi.python.org/pypi/humbleclient), so I guess it would be at least partly possible.

What do you think?

Cheers

JosefNemec commented 7 years ago

If they have reasonable API then why not.

Obigre commented 7 years ago

Would like to second this idea !

hellosputnik commented 7 years ago

Hayden Schiff reverse engineered the undocumented API and wrote a blog post.

Link to the unofficial API documentation.

DennoCoil commented 6 years ago

I did a search and there are several projects available to examine and cannibalize on, but the big one I found is an unofficial API project that uses the command line to handle Humble Bundle purchases. However, it's in Python 2.7 and uses Bash.

https://github.com/MestreLion/humblebundle

DennoCoil commented 6 years ago

Another resource for the Humble Bundle API that's properly written and fairly recent. This guy had to reverse engineer the store's Android app just to be able to get it. Yeah, Humble Bundle is that terrible at support.

https://www.schiff.io/projects/humble-bundle-api

ShaneZlaros commented 6 years ago

Thanks to the info above I have basic HumbleBundle integration working at https://github.com/Shanezlar/Playnite/tree/humbleBundleIntegrationV1

Issues:

JosefNemec commented 6 years ago

This should be done after #417 is completed, I would to prefer other provides from being hard coded the way the current ones are (Steam and others will be converter to plugins as well).

ryangiglio commented 5 years ago

Since you mentioned in #417 that this is no longer blocked, is @ShaneZlaros's update back on the table as a possibility to merge? I know it's almost a year behind the head now.

JosefNemec commented 5 years ago

Metadata provides are still hard-coded, but that should not prevent Humble integration to be doable via plugin (as other currently supported libraries are) since #523 is completed.

JosefNemec commented 5 years ago

Update on the situation. The web API they use on Humble's web site is perfect for Playnite's needs, so import of user's library will be easy. The problem is with the game installations. I have no way how to link installed DRM free games to actual library entries, since every game can be installed differently.

I'm planning to add an option to download and install DRM free games via Playnite, which would solve the issue, but any already installed games would have to be imported manually.

Also we will filter out all games that are part of the library as a key for 3rd part service (like Steam or Origin for example), since it doesn't make sense to import those as part of Humble library.

cazzoo commented 5 years ago

Hello there!

Maybe you could get inspiration on https://github.com/tkashkin/GameHub which implemented connection to Humble Bundle, retrieving game list but also humble trove list. To use just as an inspiration.

Kind regards

djeebus commented 5 years ago

Hey all, I took a shot at this in #978 . Any and all feedback would be welcome!

RiQuY commented 5 years ago

Thank you for working on this, guys. I just have found this project and I'm pretty happy this is active :)

Ecnassianer commented 5 years ago

I'd love to see this! I always forget which Humble Bundle games I got in packs and end up buying them again on another platform! It will be great to have all my games in one place.

pforhan commented 5 years ago

I'd go one step further on the humble front -- listing unredeemed keys as well as anything available for a straight download. May require some subtleties in the UI of course. For that matter, the concept of gifted keys could be handy too. One of my biggest beefs is that the humble ui doesn't give any context about games once you've bought them, Playnite could fill a big gap there.

RiQuY commented 5 years ago

@pforhan They only feauture that I see that can fit on Playnite is listing the DRM-free games available for download of the account, and maybe adding Humble Trove games when monthly subscription is active. There is no point in managing Steam/Origin keys, that games are already listed in their respective platforms on Playnite if you have activated them.

pforhan commented 5 years ago

You must have a tiny humble library, or you must redeem them all immediately. That's... not the reality for many folks I think, at least based on conversations I have at work.

I probably have 300 unclaimed steam keys out of 600+, and the humble UI does nothing to help me even remember what each is (something I've filed a ticket for them for).

Seamlessly being able to at least identify unclaimed but available entries would be a huge boon. Being able to kick off claiming them would be gravy.

I'm already getting this benefit for Twitch prime free games, where Playnite is helping inform me what these games are so I can determine whether I want to try them.

aserrallerios commented 5 years ago

@pforhan totally fair requirement, but I think it doesn't belong to Playnite. I feel your pain, I have a huge HB library myself but I think going for a fast, lean, cohesive solution here in Playnite will be better for the community. You can still promote a HB library manager project.

Playnite is already competing against Gnome Games, GameHub, Lutris on Linux and GOG2, Launchbox, nVidia Launcher on Windows (at least!). Playnite needs to keep ahead of the competition and one of the few missing bits it's the HB DRM free library and HB Trove library.

So IMHO speed and cohesion above short term convenience.

pforhan commented 5 years ago

I won't argue further, I think just pulling the downloads and trove are a great win. Maybe I'll file a separate issue about unredeemed game management as I think that also could be a great way to keep ahead of competition. If I get a chance I'll investigate extensions and see if there's a way I can help.

JosefNemec commented 4 years ago

Just a note. I'll be implementing this for Playnite 7, but download support won't be part of the original implementation (general support for downloads will be part of Playnite 8).

aserrallerios commented 4 years ago

GOG Galaxy 2.0 has a community integration for humble-bundle that already imports drm-free, trove and keys.

https://github.com/UncleGoogle/galaxy-integration-humblebundle

Their solution is just to open de humble-bundle URL that contains the key, as far as I know.

I can give you that it's very handy, and as Playnite is already "late" on this and the community will expect "matching features" comparing GOGG and Playnite, maybe it's a good idea to import keys. Maybe @pforhan was right all the time, my main point being that trove and drm-free integration should be ready as fast as possible.

@JosefNemec you may still want to keep Playnite more cohesive than GOGG (which is community driven) and that would still be a good point.

JosefNemec commented 4 years ago

I'm purposely not looking into how GOG does it because their solutions are not always ideal. However I'll check it if I come across some roadblocks, thanks for the link.

My plan for initial version is to add an option to ignore games that come from 3rd parties, since that could cause duplicates. In that case Humble integration will only import games that don't come as redeemable key for other service.

Also I don't think that trying to be cohesive with Galaxy is good thing. We should implement things the way it makes sense to Playnite's design/UX and not just copy competition. I'm not against taking inspiration from others, but some people just want Playnite to become Galaxy 2.0, and I don't like that.

JosefNemec commented 4 years ago

Done in devel7 (future Playnite 7 release).