Skip to content

Add Netflix viewing-history CSV import #302

Description

@ALeonard9

Story

As a druthers user, I want to import my downloaded Netflix viewing-history CSV so that I can add previously watched titles without searching for each one manually.

Acceptance Criteria

  • Accept a Netflix viewing-history CSV downloaded from the user's Netflix account and validate the expected columns before processing.
  • Match movie and TV rows against the Druthers catalog, showing matched, already tracked, ambiguous, and unmatched rows separately.
  • Preview only net-new matches before writing anything to the user's library.
  • Let the user add selected net-new matches or add all, without duplicating existing tracked items.
  • Report skipped and unmatched rows clearly enough for manual follow-up, and make re-importing the same CSV idempotent.

Context

Raw capture (2026-08-05):

"More add types. Single add (current). Multi-add, which would stay on the search page, allowing multiple adds, and import, which would take an extract from IMDb or Netflix etc, and show net new movies and allow multi-add or add all."

Adam clarified that the Netflix source is the downloaded Netflix CSV export.

Related to #140, which covers IMDb CSV import and should provide a reusable importer precedent. Related to ALeonard9/druthers-web#168, which covers multi-item selection on catalog search rather than file import.

Channel Impact

  • Web: In this issue — upload, match preview, and add-selected/add-all are part of the reference workflow.
  • iOS: No impact — imported titles appear through existing library APIs; native CSV upload is not required for the initial workflow.
  • MCP: No impact — local file upload and interactive match resolution are not appropriate additions to the existing discrete catalog tools.

Estimate

  • Recommended model: Opus 4.8 — full-stack importer with external-format parsing, cross-domain matching, and user-data integrity concerns
  • Human effort: M — requires a real Netflix export for manual verification and one UX review of ambiguous-match handling

Notes for Implementation

Use a real Netflix viewing-history CSV during local verification. Preserve the source rows until the user confirms the preview; do not write matched items during parsing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:import-exportData import from external sites / exportarea:moviesMovies domainarea:tvTV domainpriority:p3Nice to havestoryUser story groomed from the Druthers Backlog (Todoist)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions