{"id":13440769,"url":"https://github.com/celluloid-player/celluloid","last_synced_at":"2026-04-02T17:45:34.289Z","repository":{"id":19277442,"uuid":"22514072","full_name":"celluloid-player/celluloid","owner":"celluloid-player","description":"A simple GTK+ frontend for mpv","archived":false,"fork":false,"pushed_at":"2026-03-29T03:26:26.000Z","size":6540,"stargazers_count":1392,"open_issues_count":280,"forks_count":106,"subscribers_count":22,"default_branch":"master","last_synced_at":"2026-03-29T06:24:24.940Z","etag":null,"topics":["audio-player","c","celluloid","gnome-mpv","gtk","gtk4","libadwaita","media-player","mpv","video-player"],"latest_commit_sha":null,"homepage":"https://celluloid-player.github.io","language":"C","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/celluloid-player.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://paypal.me/CelluloidProject"}},"created_at":"2014-08-01T14:44:13.000Z","updated_at":"2026-03-29T03:26:28.000Z","dependencies_parsed_at":"2023-10-03T05:40:17.077Z","dependency_job_id":"5eef2bcd-aeb2-47f6-80cf-3bf842619fd1","html_url":"https://github.com/celluloid-player/celluloid","commit_stats":null,"previous_names":["gnome-mpv/gnome-mpv"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/celluloid-player/celluloid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-player%2Fcelluloid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-player%2Fcelluloid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-player%2Fcelluloid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-player%2Fcelluloid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/celluloid-player","download_url":"https://codeload.github.com/celluloid-player/celluloid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-player%2Fcelluloid/sbom","scorecard":{"id":270595,"data":{"date":"2025-08-11","repo":{"name":"github.com/celluloid-player/celluloid","commit":"6f04da5cb47099edc82189e6bd19ee8b04a4f8e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":10,"reason":"18 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/mirror.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/mirror.yaml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/celluloid-player/celluloid/mirror.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/mirror.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/celluloid-player/celluloid/mirror.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/celluloid-player/celluloid/test.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/celluloid-player/celluloid/test.yaml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: COPYING:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: celluloid-0.29.tar.xz.asc: https://github.com/celluloid-player/celluloid/releases/tag/v0.29","Info: signed release artifact: celluloid-0.28.tar.xz.asc: https://github.com/celluloid-player/celluloid/releases/tag/v0.28","Info: signed release artifact: celluloid-0.27.tar.xz.asc: https://github.com/celluloid-player/celluloid/releases/tag/v0.27","Info: signed release artifact: celluloid-0.26.tar.xz.asc: https://github.com/celluloid-player/celluloid/releases/tag/v0.26","Info: signed release artifact: celluloid-0.25.tar.xz.asc: https://github.com/celluloid-player/celluloid/releases/tag/v0.25","Warn: release artifact v0.29 does not have provenance: https://api.github.com/repos/celluloid-player/celluloid/releases/217766105","Warn: release artifact v0.28 does not have provenance: https://api.github.com/repos/celluloid-player/celluloid/releases/207643925","Warn: release artifact v0.27 does not have provenance: https://api.github.com/repos/celluloid-player/celluloid/releases/159575777","Warn: release artifact v0.26 does not have provenance: https://api.github.com/repos/celluloid-player/celluloid/releases/121410310","Warn: release artifact v0.25 does not have provenance: https://api.github.com/repos/celluloid-player/celluloid/releases/96960681"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 1 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T13:14:41.800Z","repository_id":19277442,"created_at":"2025-08-17T13:14:41.800Z","updated_at":"2025-08-17T13:14:41.800Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31312502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["audio-player","c","celluloid","gnome-mpv","gtk","gtk4","libadwaita","media-player","mpv","video-player"],"created_at":"2024-07-31T03:01:25.995Z","updated_at":"2026-04-02T17:45:34.283Z","avatar_url":"https://github.com/celluloid-player.png","language":"C","readme":"# Celluloid\n\nCelluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. Celluloid\ninteracts with mpv via the client API exported by libmpv, allowing access to\nmpv's powerful playback capabilities.\n\n![Screenshot](https://celluloid-player.github.io/images/screenshot-0.png)\n\nRepository Mirror: https://codeberg.org/celluloid-player/celluloid\n\n## Dependencies\n\n- appstream (build)\n- pkg-config (build)\n- gcc (build)\n- glib \u003e= 2.68\n- gtk \u003e= 4.16\n- gdk-pixbuf \u003e= 2.30\n- libadwaita \u003e= 1.8.0\n- mpv \u003e= 0.32\n- epoxy\n- lua (optional)\n- youtube-dl (optional)\n\n## Installation\n\n### Packages\n\n\u003ca href=\"https://repology.org/project/celluloid/versions\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/celluloid.svg?columns=4\" alt=\"Packaging status\"\u003e\n\u003c/a\u003e\n\nUbuntu users can use\n[this PPA](https://launchpad.net/~xuzhen666/+archive/ubuntu/gnome-mpv) to get\nmore up-to-date versions of Celluloid.\n\n### Flatpak\n\n[Flatpak](https://flatpak.org) packages support multiple distributions and are sandboxed.\nFlatpak 0.9.5+ is recommended for best integration.\n\nStable releases are hosted on [Flathub](https://flathub.org):\n\n```sh\nflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\nflatpak install flathub io.github.celluloid_player.Celluloid\n```\n\n### Snap\n\nStable releases are hosted on [Snapcraft](https://snapcraft.io):\n\n```sh\nsudo snap install celluloid\n```\n\n### Source code\nRun the following command in the source code directory to build and install:\n\n```sh\nmeson setup build \u0026\u0026 cd build \u0026\u0026 ninja \u0026\u0026 sudo ninja install\n```\n\n## Usage\n\n### Opening files\n\nThere are 4 ways to open files in Celluloid.\n\n1. Passing files and/or URIs as command line arguments.\n2. Using the file chooser dialog box, accessible via the \"Open\" menu item.\n3. Typing URI into the \"Open Location\" dialog box, accessible via the\n   menu item with the same name.\n4. Dragging and dropping files or URIs onto Celluloid.\n\n### Manipulating playlist\n\nThe playlist is hidden by default. To show the playlist, click the \"Playlist\"\nmenu item or press F9. Files can be added by dragging and dropping files or URIs\nonto the playlist. Dropping files or URIs onto the video area will replace the\ncontent of the playlist. Playlist files or online playlists (eg. YouTube's\nplaylist) will be automatically expanded into individual items when loaded.\n\nItems in the playlist can be reordered via drag-and-drop. To remove items from\nthe playlist, select the item by clicking on it then press the delete button on\nyour keyboard.\n\n### Configuration\n\nCelluloid can be configured using the preferences dialog accessible through the\n`Preferences` menu item. A number of less common options are also available in\nthe `dconf` database. You can configure these using a tool like\n[Dconf Editor](https://wiki.gnome.org/Apps/DconfEditor).\n\nmpv-specific options can be set by creating a configuration file using mpv's\n`mpv.conf` syntax. See [mpv's manual](https://mpv.io/manual/stable/) for the\nfull list of options. The file must be specified and enabled in the preferences\ndialog under the \"MPV Configuration\" section for it to take effect.\n\nIt is also possible to set mpv options by putting the options as you would pass\nto mpv on the command line in the `Extra MPV Options` text box in the\npreferences dialog. If you want to set these options on the command line, you\ncan do so by adding `mpv-` prefix to the name of the option you want to set.\nFor example, the option `--mpv-vf=flip` is equivalent to `--vf=flip` in mpv.\n\n### User Scripts\n\nCelluloid can use most mpv user scripts as-is. Some user scripts may define\nkeybindings that conflict with Celluloid, in which case you'll need to resolve\nthe conflict by explicitly defining new keybindings using `input.conf`. See\n[mpv's manual](https://mpv.io/manual/stable/#lua-scripting-[,flags]]%29) for\nmore details.\n\nUser scripts can be installed by switching to the \"Plugins\" tab in the\npreferences dialog and dropping the files there. A list of mpv user scripts can\nbe found [here](https://github.com/mpv-player/mpv/wiki/User-Scripts).\n\n### Keybindings\n\nCelluloid defines a set of keybindings in the macro `DEFAULT_KEYBINDS`, which\ncan be found in\n[src/celluloid-def.h](https://github.com/celluloid-player/celluloid/blob/master/src/celluloid-def.h).\nThe syntax used is exactly the same as mpv's `input.conf`. These keybindings are\napplied on top of default keybindings provided by mpv.\n\nAdditional keybindings can be defined in an external file using mpv's\n`input.conf` syntax. The file can be set in the preferences dialog under the\n\"Keybindings\" section.\n\n## Contributing Translations\n\n![Translation Status](https://hosted.weblate.org/widgets/celluloid/-/celluloid/horizontal-auto.svg)\n\nCelluloid uses [Weblate](https://weblate.org) to coordinate translations. You\ncan find Celluloid's page [here](https://hosted.weblate.org/projects/celluloid).\n\nWhile translating, you will find the string `translator-credits`. You should not\ntranslate this string. Instead, you should put your name, and optionally your\nemail address, in the following format: `FirstName LastName \u003cEmail Address\u003e`.\nYour name will then appear in the About dialog when your translation is active.\n\n## License\n\nCelluloid is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nCelluloid is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Celluloid.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n","funding_links":["https://paypal.me/CelluloidProject"],"categories":["C","Applications","Media","Video"],"sub_categories":["Video","Other","Video Players"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelluloid-player%2Fcelluloid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcelluloid-player%2Fcelluloid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelluloid-player%2Fcelluloid/lists"}