Skip to content

fix(senshi): restore Vidcloud playback - #121

Merged
Wraient merged 1 commit into
Wraient:mainfrom
itsmenewbie03:fix/senshi-vidcloud-playback
Sep 25, 2026
Merged

Wraient merged 1 commit into
Wraient:mainfrom
itsmenewbie03:fix/senshi-vidcloud-playback

Conversation

@itsmenewbie03

@itsmenewbie03 itsmenewbie03 commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Ports the current, working Tachiyomi Senshi extension flow into Curd.

 Senshi playback
- senshi.live
- /episode-embeds URL used directly
- obsolete Filemoon subtitle metadata
+ senshi.to
+ remote_source_id → Vidcloud sources
+ EM3U8v1 AES-GCM decryption
+ recursive loopback proxy for playlists and segments
+ Japanese/dub audio rendition selection
+ Vidcloud subtitle tracks

The port preserves Curd’s MAL-based provider IDs while adopting the extension’s current search schema, headers, source resolution, dynamic playlist-key extraction, and fallback key.

Evidence

  • Before: Senshi returned an SPA stream URL that mpv could not play. Direct media segments also returned 403 without the required Origin header.
    After: The live integration test completes search → episodes → embeds → Vidcloud source → encrypted master → encrypted variant → media segment.

  • Full suite:
    go test ./... -count=1

  • Race check:
    CGO_ENABLED=1 go test -race ./internal/providers/senshi -count=1

  • Live Senshi flow:
    CURD_LIVE_SENSHI=1 go test ./internal/providers/senshi -run TestLiveSenshiPlaybackResolution -v -count=1

Merge Danger

Door: Two-way

The implementation is isolated to the Senshi provider and can be reverted without data migration or configuration changes.

Blast Radius: Provider-local

The main risk is future Senshi or Vidcloud protocol changes, particularly playlist-key rotation. Dynamic key extraction and a verified fallback key reduce that risk.

Screenshot

image

Yes this is vibe coded, sorry for that

@Wraient

Wraient commented Sep 25, 2026

Copy link
Copy Markdown
Owner

Big one, thanks for this. Senshi playback was broken and you came through with the full port, the EM3U8v1 decryption and proxy work is genuinely impressive. Reviewed the whole thing, everything checks out. Merging.

@Wraient
Wraient merged commit febfae5 into Wraient:main Sep 25, 2026
@itsmenewbie03

Copy link
Copy Markdown
Contributor Author

Thanks for reviewing, It's mainly done by AI, but my trick was to give it a good context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants