{"id":18289164,"url":"https://github.com/cmsj/plexpiry","last_synced_at":"2025-04-09T07:16:24.356Z","repository":{"id":11481009,"uuid":"13951686","full_name":"cmsj/plexpiry","owner":"cmsj","description":"A tool for expiring content from a Plex server","archived":false,"fork":false,"pushed_at":"2017-06-12T14:54:44.000Z","size":55,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-15T01:32:40.710Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmsj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-29T09:40:06.000Z","updated_at":"2023-07-02T13:52:54.000Z","dependencies_parsed_at":"2022-09-19T05:32:06.394Z","dependency_job_id":null,"html_url":"https://github.com/cmsj/plexpiry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsj%2Fplexpiry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsj%2Fplexpiry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsj%2Fplexpiry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsj%2Fplexpiry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmsj","download_url":"https://codeload.github.com/cmsj/plexpiry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994136,"owners_count":21030050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T14:04:58.965Z","updated_at":"2025-04-09T07:16:24.332Z","avatar_url":"https://github.com/cmsj.png","language":"Python","readme":"Plexpiry queries a Plex media server to find Movies and/or TV shows that meet\nspecified criteria, and deletes them.\n\n```\nUsage: plexpiry.py [options]\n\nOptions:\n  -h, --help            show this help message and exit\n  -d, --debug           turn on debugging\n  -n, --dry-run         simulate run and display what would be removed\n  -s SERVER, --server=SERVER\n                        server to talk to [default: localhost]\n  -p PORT, --port=PORT  port to talk to the server on [default 32400]\n\n  -c FILE, --config=FILE config file to read\n```\n\nConfig file format:\n\nThe config file is INI style. There are several global sections you can use:\n * global\n * movies\n * tv\n\nEach of these sections can contain the following keys:\n * watched\n * unwatched\n * aired\n * ignore\n\nFor the first three of these keys (watched, unwatched, aired), the value should be a time specification that indicates the age of media to delete. This can be a number of seconds, or a number followed by 'd', 'w' or 'y' to indicate that the number means days, weeks or years, respectively.\n\nThe final key (ignore) should have a boolean value indicating whether or not the matching media should be ignored entirely.\n\nAdditionally, you can also have keys for the names of media (i.e. either movie titles, or TV show titles).\n\nA complex example config might look like this:\n\n    [global]\n    unwatched = 180d\n    watched = 90d\n\n    [movie]\n    watched = 30d\n\n    [tv]\n    aired = 365d\n\n    [Movie 2:The Reckoning]\n    ignore = True\n\n    [Daily TV Show]\n    watched = 1d\n    unwatched = 7d\n\nThis will delete any watched movie after 30 days, any unwatched movie or TV show after 180d, and any watched TV show after 90 days, except for Movie 2: The Reckoning which will be kept forever, and Daily TV Show, which will be deleted after 1 day if watched, or 7 days if unwatched.\n\nSimple :)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmsj%2Fplexpiry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmsj%2Fplexpiry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmsj%2Fplexpiry/lists"}