Skip Navigation

I made a thing! A python script to delete old, unwatched movie content. (update)

github.com GitHub - ASK-ME-ABOUT-LOOM/purgeomatic: Delete movie/tv data based on watch statistics

Delete movie/tv data based on watch statistics. Contribute to ASK-ME-ABOUT-LOOM/purgeomatic development by creating an account on GitHub.

GitHub - ASK-ME-ABOUT-LOOM/purgeomatic: Delete movie/tv data based on watch statistics

About a year and a half ago I posted a script I made for deleting movie content in your library not being watched. Folks really seemed to like it, and I still get comments on that thread every so often. So I've updated it!

Far and away, the two biggest requests I got were:

  • Make it do TV, too
  • Make a dry-run mode
  • Edit: Added just now: a protected mode when you volume mount a protected file!

The code is now available on github here:

https://github.com/ASK-ME-ABOUT-LOOM/purgeomatic

Even better, no installation is required. You can run it as a docker container like so:

docker run --rm -it --env-file .env --network=host ghcr.io/ask-me-about-loom/purgeomatic:latest python delete.movies.unwatched.py

 

It now supports TV series as well. Thanks to a suggestion from /u/JimLahey-, I was able to get my head around the idea - I had always thought of managing TV shows as "collections of seasons" of media, but the reality is, if nobody has watched anything related to a TV show in a while, the whole thing can go! And that's what this does:

docker run --rm -it --env-file .env --network=host ghcr.io/ask-me-about-loom/purgeomatic:latest python delete.tv.unwatched.py

 

No more editing python, either. Create yourself a .env file, set up all of your config, and even enable dry run mode, so you can test to your heart's content:

$ docker run --rm -it --env-file .env --network=host ghcr.io/ask-me-about-loom/purgeomatic:latest python delete.movies.unwatched.py
DRY_RUN enabled!
--------------------------------------
2023-08-25T12:40:57.288608
DRY RUN: Chaos Walking | Radarr ID: 1445 | TMDB ID: 412656
DRY RUN: Captain Marvel | Radarr ID: 885 | TMDB ID: 299537
DRY RUN: Captain America: Civil War | Radarr ID: 1768 | TMDB ID: 271110
DRY RUN: Black Widow | Radarr ID: 1517 | TMDB ID: 497698
DRY RUN: Birds of Prey (and the Fantabulous Emancipation of One Harley Quinn) | Radarr ID: 1092 | TMDB ID: 495764
DRY RUN: Bill & Ted's Excellent Adventure | Radarr ID: 1777 | TMDB ID: 1648
DRY RUN: Bill & Ted's Bogus Journey | Radarr ID: 1778 | TMDB ID: 1649
DRY RUN: Big Hero 6 | Radarr ID: 71 | TMDB ID: 177572
DRY RUN: Big | Radarr ID: 71 | TMDB ID: 177572
DRY RUN: Batman Begins | Radarr ID: 1745 | TMDB ID: 272
DRY RUN: Assault on Precinct 13 | Radarr ID: 1212 | TMDB ID: 17814
DRY RUN: 21 Jump Street | Radarr ID: 1096 | TMDB ID: 64688
Total space reclaimed: 164.88GB

 

To use protected mode, just create a text file with one TMDB/TVDB ID per line and volume mount it as /app/protected like so:

docker run --rm -it --env-file .env --network=host -v /home/user/protected:/app/protected ghcr.io/ask-me-about-loom/purgeomatic:latest python delete.movies.unwatched.py

 

Good luck! Please let me know if you have questions or problems and I'll do my best to help out!

5
5 comments