{"id":13835166,"url":"https://github.com/po5/memo","last_synced_at":"2025-10-31T08:09:26.318Z","repository":{"id":162257061,"uuid":"636618773","full_name":"po5/memo","owner":"po5","description":"A recent files menu for mpv","archived":false,"fork":false,"pushed_at":"2024-11-01T20:31:51.000Z","size":184,"stargazers_count":69,"open_issues_count":7,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-20T20:39:02.014Z","etag":null,"topics":["history","mpv","mpv-script","recent-files"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/po5.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-05T09:01:33.000Z","updated_at":"2024-11-20T13:06:28.000Z","dependencies_parsed_at":"2023-10-28T18:30:01.578Z","dependency_job_id":"3a95cf4a-f6ac-4bd7-83e0-12a9eeb8ad9e","html_url":"https://github.com/po5/memo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/po5/memo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/po5%2Fmemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/po5%2Fmemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/po5%2Fmemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/po5%2Fmemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/po5","download_url":"https://codeload.github.com/po5/memo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/po5%2Fmemo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264545167,"owners_count":23625404,"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":["history","mpv","mpv-script","recent-files"],"created_at":"2024-08-04T14:00:57.490Z","updated_at":"2025-10-31T08:09:21.268Z","avatar_url":"https://github.com/po5.png","language":"Lua","funding_links":[],"categories":["Playback","others"],"sub_categories":[],"readme":"# memo\nA recent files menu for mpv.\n\nThis script saves your watch history, and displays it in a nice menu.\n\n![Preview](https://user-images.githubusercontent.com/42466980/236659593-59d6b517-c560-4a2f-b30c-cb8daf7050e2.png)\n\n## Installation\nPlace **memo.lua** in your mpv `scripts` folder.  \nDefault settings are listed in **memo.conf**, copy it to your mpv `script-opts` folder to customize.\n\nThe default key to open the history menu is **h**.  \nSelect a history entry to reopen the file.\n\nThis script comes with a simple menu, which gets automatically enhanced for users of [uosc](https://github.com/tomasklaen/uosc).  \nMake sure you are on the latest version of mpv (and uosc if you use it) when reporting issues.\n\n## Custom keybinds\nSix keybinds are provided for use in `input.conf`.  \nExample usage: `h script-binding memo-history`\n\n`memo-history`  \nBrings up the recent files menu, or closes it if already open. Default key is **h**.\n\n`memo-next`  \nJumps to the next page of history entries, if there is one. Also opens the menu if it's closed.\n\n`memo-prev`  \nJumps to the previous page of history entries, if there is one. Also opens the menu if it's closed.\n\n`memo-last`  \nOpens the last non-deleted file that isn't the current file, and isn't in the same directory if `hide_same_dir=yes`. Also closes the menu if it's open.\n\n`memo-search`  \nBrings up a search box, type your keywords. If using the vanilla menu, press Enter to submit.  \nThis finds entries that contain every keyword. Enclose your search in double quotes for exact matches.  \nUsers of uosc can also start typing right from the standard history menu to start a search (requires `menu_type_to_search=yes` in `uosc.conf`).\n\n`memo-log`  \nWrites an entry for the current file. Intended for manual bookmarking with `enabled=no`.\n\nNavigation keybinds for vanilla menu can be configured through `script-opts/memo.conf`.\n\n## Script messages\nJust like the keybindings above, script messages can also be bound to keys in `input.conf`.  \nExample usage: `H script-message memo-dirs \"My-Movies|pattern:TV Shows/.-/|Anime\"`\n\n`memo-dirs [\u003cpath_prefixes\u003e]`  \nSimilar to `memo-history`, but instead of files it shows the directories of recent files.  \nIt optionally takes in custom path prefixes as a parameter with the same syntax as the option of the same name.  \nIf no custom path prefixes are provided, the ones from the config are used.\n\n## uosc menus and buttons\nAdding a menu: append ` #! History` to your `input.conf` keybind, or use this for a menu-only config.\n```\n# script-binding memo-history #! History\n```\n\nAdding a button above timeline: add `command:history:script-binding memo-history?History` to your **uosc.conf** `controls` option.\n\n## Configuration\nAll further configuration, like the number of entries to show in menu, is done in `script-opts/memo.conf`.  \nA file with all default options and their descriptions is included in the repo.\n\n## Disabling for specific directories\nIt is possible to disable logging of specific files with any criteria that can be queried through [auto profiles](https://mpv.io/manual/master/#conditional-auto-profiles).  \nBelow is an example to exclude files when \"MyCunnyFolder\" or \"AnotherSecretFolder\" is part of the directory path.  \nThis goes in `mpv.conf`.\n```ini\n[dont-log-my-porn]\nprofile-cond=(function() local ignored, path = {\"mycunnyfolder\", \"anothersecretfolder\"}, get(\"path\", \"\") path = ((path:find(\"^%a[%w.+-]-://\") or path:find(\"^%a[%w.+-]-:%?\")) and path:lower() or require \"mp.utils\".join_path(get(\"working-directory\", \"\"), path)):sub(1, -get(\"filename\", \"\"):len()-1):lower() for _, ig in ipairs(ignored) do if path:find(ig:lower(), 1, true) then return true end end end)()\nprofile-restore=copy-equal\nscript-opts-append=memo-enabled=no\n```\nThis will apply to future writes, but will not retroactively delete files from history if you opened them before.  \nFiles can easily be manually removed from the history (by default at `~~/memo-history.log`). One entry per line.\n\n## What sets this apart from other history scripts?\nSome scripts only write a history file without the ability to navigate it.  \nScripts that do, by design, read the entire history before displaying your files.  \nThis means they will get slower with time, while memo reads only what it needs.  \nDespite reading little data, it lets you browse as far back as you'd like. It even has a search feature!  \nThe file format used allows you to retroactively change display and filtering options.  \nIt supports displaying titles of YouTube and other web videos.  \nComes with extensive format and protocol support, including compressed files and DVDs.  \nHistory is global and works across multiple instances of mpv by default, can be set to per-instance volatile history as well.  \nThis is the nicest menu out of all history scripts I know about, and has uosc integration.\n\n## Acknowledgements\nuosc version check and vanilla menu lifted from [mpv-quality-menu](https://github.com/christoph-heinrich/mpv-quality-menu) (improvements: scroll alignment)  \nUTF-8 title truncation from [recent-menu](https://github.com/natural-harmonia-gropius/recent-menu) (improvements: preserves extensions)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpo5%2Fmemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpo5%2Fmemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpo5%2Fmemo/lists"}