diff --git a/internal/api/resolver_model_scene.go b/internal/api/resolver_model_scene.go index 81113d8587..ecb163765c 100644 --- a/internal/api/resolver_model_scene.go +++ b/internal/api/resolver_model_scene.go @@ -114,7 +114,7 @@ func (r *sceneResolver) Paths(ctx context.Context, obj *models.Scene) (*ScenePat objHash := obj.GetHash(config.GetVideoFileNamingAlgorithm()) vttPath := builder.GetSpriteVTTURL(objHash) spritePath := builder.GetSpriteURL(objHash) - funscriptPath := builder.GetFunscriptURL() + funscriptPath := builder.GetFunscriptURL(config.GetAPIKey()).String() captionBasePath := builder.GetCaptionURL() interactiveHeatmap := builder.GetInteractiveHeatmapURL() diff --git a/internal/api/urlbuilders/scene.go b/internal/api/urlbuilders/scene.go index 10c4f347c6..72a461519f 100644 --- a/internal/api/urlbuilders/scene.go +++ b/internal/api/urlbuilders/scene.go @@ -57,8 +57,20 @@ func (b SceneURLBuilder) GetScreenshotURL() string { return b.BaseURL + "/scene/" + b.SceneID + "/screenshot?t=" + b.UpdatedAt } -func (b SceneURLBuilder) GetFunscriptURL() string { - return b.BaseURL + "/scene/" + b.SceneID + "/funscript" +func (b SceneURLBuilder) GetFunscriptURL(apiKey string) *url.URL { + u, err := url.Parse(fmt.Sprintf("%s/scene/%s/funscript", b.BaseURL, b.SceneID)) + if err != nil { + // shouldn't happen + panic(err) + } + + if apiKey != "" { + v := u.Query() + v.Set("apikey", apiKey) + u.RawQuery = v.Encode() + } + + return u } func (b SceneURLBuilder) GetCaptionURL() string {