{"id":26662700,"url":"https://github.com/hurlenko/folderplay","last_synced_at":"2025-08-30T18:24:41.127Z","repository":{"id":57431709,"uuid":"202406332","full_name":"hurlenko/folderplay","owner":"hurlenko","description":"🎞️ folderplay is a small tool that helps you remember watched tv episodes","archived":false,"fork":false,"pushed_at":"2022-12-26T20:59:04.000Z","size":250,"stargazers_count":1,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-09T20:44:14.183Z","etag":null,"topics":["movies","player","pyqt5","python","tv-series"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hurlenko.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":"2019-08-14T18:39:47.000Z","updated_at":"2025-05-07T19:31:14.000Z","dependencies_parsed_at":"2023-01-31T01:45:53.195Z","dependency_job_id":null,"html_url":"https://github.com/hurlenko/folderplay","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/hurlenko/folderplay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hurlenko%2Ffolderplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hurlenko%2Ffolderplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hurlenko%2Ffolderplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hurlenko%2Ffolderplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hurlenko","download_url":"https://codeload.github.com/hurlenko/folderplay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hurlenko%2Ffolderplay/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267160628,"owners_count":24045331,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["movies","player","pyqt5","python","tv-series"],"created_at":"2025-03-25T14:17:53.358Z","updated_at":"2025-07-26T11:35:13.356Z","avatar_url":"https://github.com/hurlenko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# folderplay\n\n[![PyPI version](https://img.shields.io/pypi/v/folderplay.svg)](https://pypi.python.org/pypi/folderplay)\n[![Latest Github release](https://img.shields.io/github/release/hurlenko/folderplay.svg)](https://github.com/hurlenko/folderplay/releases/latest)\n![Python](https://img.shields.io/badge/python-v3.5+-blue.svg)\n[![Build Status](https://dev.azure.com/hurlenko/folderplay/_apis/build/status/hurlenko.folderplay?branchName=master)](https://dev.azure.com/hurlenko/folderplay/_build/latest?definitionId=1\u0026branchName=master)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n## **folderplay** is a small tool that helps you remember watched tv episodes :sparkles:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/18035960/70795863-7e11dd80-1da9-11ea-8f6f-9c0ff2208a6d.gif\" /\u003e\n\u003c/p\u003e\n\nIts goal is to resume playback from the episode you left off with a single button press. It doesn't use any integrated players so you can still use your favourite one.\n\n## Advaced view\n\n![image](https://user-images.githubusercontent.com/18035960/70796312-9a624a00-1daa-11ea-94fe-6f0a805761a4.gif)\n\n## 🚩 Table of Contents\n\n- [Features](#-features)\n- [How it works](#-how-it-works)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [Building](#-building)\n- [Command line interface](#%EF%B8%8F-command-line-interface)\n- [Credits](#credits)\n\n## 🎨 Features\n\n- Continue playback with a single button press\n- Play with your favoure video player\n- Filter and search your playlist\n- Displays general media info\n- Supports basic [command line interface](#%EF%B8%8F-command-line-interface)\n- Minimalistic GUI\n- Supports multiple color styles\n- Supports multiple icon sets\n- No installation required - the whole program is a single executable file\n- Cross platform - supports all three major platforms (Windows, MacOS, Linux) thanks to `python` and `pyqt`\n\n## ⚙️ How it works\n\n`folderplay` scans for known extensions in the current working directory and all subdirectories. It marks the files as `watched` or `unwatched` by checking for a specific prefix in the filename. It also searches for a list of predefined players for current operating systems. If the application can't find one, it will throw a warning and will ask you to select the player. When you hit the play button `folderplay` spawns a new process with the selected player, freezes the UI and waits for the process to exit. When the playes process exits `folderplay` will rename the media file by prepending a prefix to its filename to mark it as watched.\n\n## 💾 Installation\n\nPrebuilt binaries for macOS and Windows can be downloaded from the [GitHub releases page](https://github.com/hurlenko/folderplay/releases).\n\n:warning: Note that the binaries were not thoroughly tested across different platforms and might not work correctly.\n\nThe recommended installation method is using `pip`:\n\n```bash\npip install folderplay\n```\n\nIf you're on Linux, you have to additionally install `libmediainfo-dev`. For Debian-based systems it's as simple as running\n\n```bash\nsudo apt-get install libmediainfo-dev\n```\n\nAfter installation, the `fplay` command will be available. Check the [command line](%EF%B8%8F-command-line-interface) section for supported commands.\n\n## 📙 Usage\n\nSimply drop the executable into the directory where your media resides and run it. The application will scan all directories and subdirectories for known extensions.\n\nBy default the app runs in `basic` view mode. You can toggle to the more advanced view by pressing the gear button. From there you can select the video player to use (`folderplay` will try to search for existing video players and will warn you on start up if it didn't find one).\n\nYou can filter your media list using the search form. The list also has supports context menu with some handy commands.\n\n## 🔨 Building\n\nClone master branch or checkout a specific tag\n\n```bash\ngit clone https://github.com/hurlenko/folderplay.git\n```\n\nCreate new virtual environment inside of the `folderplay` directory\n\n```bash\npython3 -m venv venv\n\nsource venv/bin/activate # Linux / MacOs\n\nvenv\\Scripts\\activate # Windows\n```\n\nInstall dependencies\n\n```bash\npip install -r requirements.txt\n```\n\nNow either run the application\n\n```bash\npython -m folderplay\n```\n\nOr create an executable (will be save inside of the `dist` directory)\n\n```bash\npython -m PyInstaller folderplay.spec\n```\n\n## 🖥️ Command line interface\n\nCurrently `fplay` supports these commands\n\n```bash\nUsage: fplay [OPTIONS] \u003cdirectory\u003e\n\nOptions:\n  --version            Show the version and exit.\n  -p, --player \u003cpath\u003e  Host player binary\n  -s, --style \u003cname\u003e   Color style: dark, light, fusion, native\n  -i, --icons \u003cname\u003e   Icon set: material, feather\n  --help               Show this message and exit.\n```\n\n## :octocat: Credits\n\nWork from these open source projects is used by this application\n\n- [qtmodern](https://github.com/gmarull/qtmodern) - PyQt/PySide Widgets Modern User Interface\n- [feathericons](https://feathericons.com/) - Simply beautiful open source icons\n- [material icons](https://material.io/resources/icons/) - Material icons\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhurlenko%2Ffolderplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhurlenko%2Ffolderplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhurlenko%2Ffolderplay/lists"}