{"id":17054214,"url":"https://github.com/pixeldesu/shirase","last_synced_at":"2025-10-28T06:39:01.203Z","repository":{"id":57358587,"uuid":"169895937","full_name":"pixeldesu/shirase","owner":"pixeldesu","description":":rabbit: Get anime information from currently running media players","archived":false,"fork":false,"pushed_at":"2023-05-20T20:11:50.000Z","size":22,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T11:21:19.380Z","etag":null,"topics":["anime","anitomy","media-library","processes"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/pixeldesu.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-02-09T17:59:17.000Z","updated_at":"2023-05-19T21:59:57.000Z","dependencies_parsed_at":"2022-09-06T22:21:40.763Z","dependency_job_id":null,"html_url":"https://github.com/pixeldesu/shirase","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/pixeldesu%2Fshirase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixeldesu%2Fshirase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixeldesu%2Fshirase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixeldesu%2Fshirase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pixeldesu","download_url":"https://codeload.github.com/pixeldesu/shirase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248148246,"owners_count":21055548,"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":["anime","anitomy","media-library","processes"],"created_at":"2024-10-14T10:14:17.466Z","updated_at":"2025-10-28T06:38:56.174Z","avatar_url":"https://github.com/pixeldesu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shirase\n\nShirase is a library that enables developers to get information of anime currently being played in media players.\n\n## Installation\n\nYou can get shirase over npm\n\n```\nnpm install shirase\n```\n\n## Usage\n\nUsing shirase is really easy!\n\n```js\nimport Shirase from 'shirase';\nconst shi = new Shirase();\n\n(async () =\u003e {\n  const information = await shi.getInformation();\n  console.log(information);\n});\n```\n\n`information` (or however you name the Promise return value) is an object containing various fields of information coming from [anitomy](https://github.com/skiptirengu/anitomy-js).\n\n## How does it work?\n\nThere are a lot of programs using a multitude of batch/shell/PowerShell scripts to get currently running anime, I wondered about there being a way to grab all of that information just inside NodeJS.\n\nShirase will query for all running processes, then check for a whitelist of media player process names (found in `Shirase.MEDIA_PLAYER_PROCESSES`) and filter these out.\n\nOut of the narrowed list of processes, Shirase will use the PID to query the system for window information of that specific process.\n\nThis information includes the title, which we will prepare beforehand, consisting of removing eventual title suffixes (e.g. VLCs `- VLC media player`) and trimming it down.\n\nOnce that is done, the title will be passed to [anitomy](https://github.com/skiptirengu/anitomy-js), which parses the title into an object with various different fields from information given. After all players have been checked through, an array with all found information sets will be returned in the Promise.\n\n## Contributing\n\n### Feature Request / Player Support\n\nIf you run `shirase` locally, in a development setup and find that there's a player that hasn't been added to the internal list of supported ones yet, feel free to [open an issue](https://github.com/pixeldesu/shirase/issues/new) or a [pull request](https://github.com/pixeldesu/shirase/compare)!\n\n## License\n\nShirase is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixeldesu%2Fshirase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpixeldesu%2Fshirase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixeldesu%2Fshirase/lists"}