wrolpi/modules/videos/test
lrnselfreliance c717f11821
Duplicate video cleanup keeps a complete copy and its viewing history (#818)
`delete_duplicate_videos` kept whichever duplicate had the largest
FileGroup and deleted the rest.  A leftover yt-dlp format file (video only,
or audio only) is often the largest, so it could be kept while every
playable copy was deleted.  The deleted copies' `viewed`, `progress` and
`position` were also lost; only tags were carried over.

Rank copies by completeness first (has audio, has video, from the stored
ffprobe data; unknown counts as complete so no ffprobe runs inside the write
transaction), then by size, keeping the oldest of equals as before.  The kept
copy takes the most recent view, and the resume position of the most
recently viewed duplicate when it has none of its own.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:25:25 -06:00
..
__init__.py A new start 2021-11-01 16:43:09 -06:00
test_api.py db: request-path library functions use the request's connection (#774) 2026-10-04 11:05:20 -06:00
test_audio_modeling.py files: shared modeler batch loop for video, doc, zim, archive (#722) 2026-09-24 16:47:46 -06:00
test_channel_directory_scenarios.py db: write intent is the opt-in, not a second session helper 2026-08-07 20:15:50 -06:00
test_channel_refresh_events.py videos: silence the automatic channel refresh before downloads (#671) 2026-08-20 15:15:18 -06:00
test_channel_refresh_external_files.py Displaying download progress (speed, eta) for file and video downloads. 2026-03-12 19:31:35 -06:00
test_channels_config.py Collections: changes wait for their config's import; domains with archives survive the import (#784) 2026-10-07 14:33:51 -06:00
test_common.py Jobs queue, video Edit dropdown: transcode/remux, edit title & description (#711) 2026-09-16 19:25:23 -06:00
test_cookies.py Using shared context to sync cookies between processes. 2026-02-22 14:32:27 -07:00
test_downloader.py Video download deletes yt-dlp format leftovers of any extension (#816) 2026-10-11 16:20:25 -06:00
test_lib.py db: request-path library functions use the request's connection (#774) 2026-10-04 11:05:20 -06:00
test_models.py Handling when skip_urls is a None. Logging a warning (and ignoring) when duplicate json files are in a Video FileGroup. 2026-03-13 15:27:43 -06:00
test_transcode.py Jobs queue, video Edit dropdown: transcode/remux, edit title & description (#711) 2026-09-16 19:25:23 -06:00
test_transcode_audio.py videos: transcode can remove the audio stream (silent video) (#737) 2026-09-26 17:49:14 -06:00
test_transcode_job.py videos: hide the transcoder's temporary output from the file refresh (#731) 2026-09-26 14:59:51 -06:00
test_video.py Duplicate video cleanup keeps a complete copy and its viewing history (#818) 2026-10-11 16:25:25 -06:00
test_video_edit.py db: request-path library functions use the request's connection (#774) 2026-10-04 11:05:20 -06:00
test_video_modeler_loop.py Fixing bug where not all archives were modeled. 2025-12-18 17:19:57 -07:00
test_video_url_resolver.py Trying to get existing channel using more variations of Youtube URLs. 2026-03-20 17:26:51 -06:00