# Huge Playlist Live-Test Checklist

Use this checklist for manual verification against very large YouTube playlists. It avoids recording browser secrets and is intended to complement the offline parser/storage smoke checks in `tests/`.

## Preconditions

- Chrome profile is signed in to YouTube.
- Playlist Butler extension is loaded unpacked from this repo.
- Open a playlist with at least several thousand videos if available.
- Open the extension popup and use its debug-log controls if present.

## Test cases

1. **Fresh import**
   - Open `https://www.youtube.com/playlist?list=...`.
   - Start an import with force/fresh indexing enabled if available.
   - Confirm progress moves past the first rendered page and `loaded` continues to increase across continuation pages.
   - Confirm no popup/UI freeze while progress updates.

2. **Continuation resilience**
   - Let the import run for at least 10 continuation pages.
   - Watch debug logs for:
     - `initial token source`
     - `continuation request summary`
     - `continuation parsed`
   - A healthy run should show nonzero parsed items for most pages and a next token until the final page.

3. **Throttle/backoff behavior**
   - If YouTube returns 429/5xx, confirm progress remains in `fetching` with retry metadata (`lastHttpStatus`, `cooldownMs`) rather than failing immediately.
   - Confirm the import resumes after cooldown where possible.

4. **Storage/index paging**
   - After completion, reopen the popup/list view.
   - Page near the beginning, middle, and end of the playlist.
   - Confirm pages load without multi-second hangs and counts match the final import total.

5. **Export sanity**
   - Export JSON or CSV.
   - Confirm exported row count matches the import summary and contains videos from late in the playlist, not only the first page.

6. **Incremental re-import**
   - Re-run import without clearing existing data if that mode is available.
   - Confirm duplicates do not inflate the final count and existing rows are updated in place.

## Debug notes to capture on failure

Do not capture cookies, auth headers, API keys, or full continuation tokens. Safe details:

- Playlist size and whether it is public/private.
- Extension version/commit.
- Last 20 Playlist Butler debug rows with token lengths only.
- Counts from `continuation payload inventory`, especially:
  - `appendContinuationItemsActionCount`
  - `reloadContinuationItemsCommandCount`
  - `updateSectionListContinuationCount`
  - `continuationItemsArrayCount`
  - `playlistVideoRendererCount`
  - `hasNextToken`
- Page number where progress stopped and the last `loaded` value.
