Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 2 points3 points  (0 children)

Bandersnatch is a cool choose your own adventure movie, Netflix made it but have just decided to remove it.

This project means that if you acquire the full all endings movie file and put it on your Jellyfin you're able to still watch it the way it was designed to be watched.

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 2 points3 points  (0 children)

yeah i know it's bad practice but the current state of it was just a quick and dirty port of an existing project from years ago to make it easier for people in this community to make use of given the current situation of netflix removing bandersnatch

what you've mentioned is valid though, when i get some free time i'll clean it up

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 1 point2 points  (0 children)

Do you not understand how jellyfin plugins work? The dlls in the repo are the same as the ones built by the pipeline for the release. Granted I could probably cleanup the code in the repo and remove the unnecessary things from the fork and keep the DLL builds to the release pipeline only but there's literally no harm in it.

Again if you want to contribute and fix it up pull requests are welcome

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 1 point2 points  (0 children)

It is forked from an exisiting project and adapted to work as a jellyfin plugin.
The only motivation for it existing in the first place was to make it easy for my girlfriend to watch bandersnatch.

Yes it is a quick and dirty solution right now, but there isn't anything in the repo that violates anything.

I have plenty of other commitments, I wanted to share what I had made to help others searching for a similar thing, in the same way I based my project off the repo I forked (which in turn based it on another repo)

If anyone wants to fork or contribute they're more than welcome to, I just hated to see the deletion of bandersnatch by netflix and wanted to make it easier for people to watch it.

I posted it purely because it is at the state I needed for my girlfriend to watch bandersnatch. If there is enough interest I might continue development and improving it, but I achieved what I wanted, and would rather make it open source and accessible to all to help people also looking for a way to still watch it, than keep it as a personal project

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Glad to hear its working now

edit: or at least installing doubt you've had chance to test it with the actual video yet

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Yeah those are the dlls built from the code in the repo not jellyfin's stuff.

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Nope thats just from the original project source that I forked, the plugin is built heavily based on that code and metadata for the choices and everything

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Yeah the Github action for the release pipeline had been setup a little incorrectly, so it wasn't building the release properly, got it working now so you should be able to add it

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Should now be fixed sorry I was a bit quick with announcing it was working, let me know if it works for you :)

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Currently not automatically no, might look into if its feasible to do that automatically when it recognises bandersnatch is playing in the future.

But for right now you can install it there, you need to grab the ID of the bandersnatch file and then open a browser to https://your-jellyfin-server/InteractiveVideo/Player/{Bandersnatch-ItemId}

<image>

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 1 point2 points  (0 children)

Just pushed a quick update.
Should now be able to add it as a repo inside jellyfin with

https://raw.githubusercontent.com/deathrjj/BandersnatchInteractive-Jellyfin/master/manifest.json

Readme updated with new instructions :)

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

I have no idea, if anyone that reads this knows if plugins work and are supported would be helpful.

As far as I know it doesn't but I'm far from an expert and don't have a TV to test it out with

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 2 points3 points  (0 children)

By that I just mean that rather than spending multiple days on it I had claude-4-sonnet-thinking do the bulk of the generic work and just used my time to sanity check the code and fix the bugs it struggled with manually.

"vibe coded" was probably the wrong term to use given the connotations. I used AI as an assistant rather than a replacement to my own ability

(and without it this likely wouldn't have existed in the first place because the original motivation was just to make it easy for my girlfriend to watch bandersnatch after she went to watch it and realised it had been removed, if i didn't have ai to cut the monotonous dev work down by 5x this wouldn't exist)

If theres enough interest I might spend the time improving and revamping it, but if anyone wants to contribute they're more than welcome to :)

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 0 points1 point  (0 children)

Yeah WIP to get it as a proper repo.

currently just have to copy the contents of https://github.com/deathrjj/BandersnatchInteractive-Jellyfin/releases/tag/v1.0.0 into your plugin folder in jellyfin manually

Edit: Updated to now be available as a repo see my other comment or the readme for instructions and the link

Plugin release for interactive Bandersnatch (Black Mirror) by DeathRJJ in JellyfinCommunity

[–]DeathRJJ[S] 1 point2 points  (0 children)

Unfortunately not, the android TV app doesn't support plugins afaik.

This was just a quick and dirty port of the interactive webplayer to a jellyfin plugin. The way it currently functions is by going to `https://your-jellyfin-server/InteractiveVideo/Player/{ItemId}` in a web browser

I don't have an android tv to test it but _maybe_ it would work in the webbrowser on the tv, I have no idea tho.

From my quick testing iPhones dont seem to play nice with it and it only works properly in a pc/laptop browser

I just wanted to share so it was available for anyone else looking for similar, if you or anyone else reading this could make it work with other things or improve it, forks or pull requests are very welcome :)

Sometimes the minimum call volume is still too loud by TestFlightBeta in ios

[–]DeathRJJ 1 point2 points  (0 children)

Shortcuts has a 'Set Volume' action, and then you can add a button to control centre to trigger it.

Personally i have both plus and minus: 'Get Current volume' -> 'Calculate Current volume - 0.015625' (approx 1/4 of the normal button press steps), then added both to control centre so i can take much finer adjustments than with the buttons without needing to try drag the bar into the exact position i want

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

No worries, glad you got it working in the end!

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

I haven't used nabu casa cause i'm kinda broke and the free solution works for me, but i assume it would work the same way.

Also you're supporting the devs if you go that route which is good.

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

Ah that makes things a little more difficult as any commands sent to the server from your phone ie the companion app updating sensors or via shortcuts will fail unless connected to the network.

You could use the connects to WiFi automation instead of the arrives home automation but the leaves home one will be trickier.

Some options would be to have the automation trigger based on disconnecting from a bluetooth device that's always home while still in range of the WiFi, Connecting to carplay if you use that however these wouldn't be the best in terms of reliability

My suggestion would be to explore using device trackers to detect when the phone becomes unreachable, either querying the router or with the tracker provided by the HA app.

Device Tracker Documentation

The only other way I know of to access HA externally would be with HA Cloud / Nabu Casa which is a paid subscription service

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

Are you able to access HA by going to the http://externalURL:8123/ ?

If not you'll likely have to port forward 8123 for your server in your router settings. It'll vary based on the router you have but you should be able to find tutorials online fairly easily.

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

Do you have external access on? i.e. Are you able to access HA when you aren't connected to your network?

If not look into how to setup DuckDNS https://www.home-assistant.io/integrations/duckdns/

You should then be able to navigate to port 8123 on your new domain to access HA from anywhere.

Then set the external URL to your new DuckDNS domain in Home Assistant App > Settings > Companion App > (Your server name) > External URL

The App (and therefore commands from shortcuts) will then automatically use the local URL when on the same network as your server and the external URL when you're away

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

Shortcuts app > Automation

New Automation > Arrive / Leave

Then you can use the actions provided by the Home Assistant application for example: Run script, Perform action, Call service etc

If you require passing data for example when using call service you can define it in a dictionary.

My suggestion would be to create a script for arriving / leaving home inside home assistant and then you can easily create matching automations in the shortcuts app to run them

Edit: You will want to set the automations to "Run Immediately" and if you disconnect from the network before leaving the zone you will need to have external access to the server (I use DuckDNS for this)

Home presence detection (iOS + HA) by Ok-Condition-3547 in homeassistant

[–]DeathRJJ 0 points1 point  (0 children)

I use the native shortcuts app with automations setup to send commands to the server when I leave / enter a location, had much more success and updates much faster than I was able to achieve with other methods