{"id":15767217,"url":"https://github.com/jesec/iina","last_synced_at":"2025-03-31T11:10:08.666Z","repository":{"id":110270177,"uuid":"421980296","full_name":"jesec/iina","owner":"jesec","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-21T23:03:56.000Z","size":240136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-04T13:21:51.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/iina/iina","language":"Swift","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/jesec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2021-10-27T21:34:50.000Z","updated_at":"2021-11-02T20:55:08.000Z","dependencies_parsed_at":"2023-04-09T04:33:06.217Z","dependency_job_id":null,"html_url":"https://github.com/jesec/iina","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/jesec%2Fiina","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Fiina/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Fiina/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Fiina/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesec","download_url":"https://codeload.github.com/jesec/iina/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246458000,"owners_count":20780677,"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-10-04T13:21:11.264Z","updated_at":"2025-03-31T11:10:08.646Z","avatar_url":"https://github.com/jesec.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg height=\"256\" src=\"https://github.com/iina/iina/raw/master/iina/Assets.xcassets/AppIcon.appiconset/1024-1.png\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eIINA\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eIINA is the \u003cb\u003emodern\u003c/b\u003e video player for macOS.\u003c/p\u003e\n\n\u003cp align=center\u003e\n\u003ca href=\"https://iina.io\"\u003eWebsite\u003c/a\u003e ·\n\u003ca href=\"https://github.com/iina/iina/releases\"\u003eReleases\u003c/a\u003e ·\n\u003ca href=\"https://t.me/IINAUsers\"\u003eTelegram Group\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Features\n\n* Based on [mpv](https://github.com/mpv-player/mpv), which provides the best decoding capacity on macOS\n* Designed with modern versions of macOS (10.11+) in mind\n* All the features you need for video and music: subtitles, playlists, chapters…and much, much more!\n* Force Touch, picture-in-picture and advanced Touch Bar support\n* Customizable user interface including multiple color schemes and on screen controller (OSC) layout positioning\n* Standalone Music Mode designed for audio files\n* Video thumbnails\n* Online subtitle searching and intelligent local subtitle matching\n* Unlimited playback history\n* Convenient and interactive settings for video/audio filters\n* Fully customizable keyboard, mouse, trackpad, and gesture controls\n* mpv configuration files and script system for advanced users\n* Command line tool and browser extensions provided\n* In active development\n\n## Building\n\nIINA uses mpv for media playback. To build IINA, you can either fetch copies of these libraries we have already built (using the instructions below) or build them yourself by skipping to [these instructions](#building-mpv-manually).\n\n### Using the pre-compiled libraries\n\n1. Download pre-compiled libraries by running\n```console\n./other/download_libs.sh\n```\n\n2. Open iina.xcodeproj in the [latest public version of Xcode](https://itunes.apple.com/us/app/xcode/id497799835). *IINA may not build if you use any other version.*\n\n3. Build the project.\n\n### Building mpv manually\n\n1. Build your own copy of mpv. If you're using a package manager to manage dependencies, the steps below outline the process.\n\n\t#### With Homebrew\n\n\tUse our tap as it passes in the correct flags to mpv's configure script:\n\n\t```console\n\t$ brew tap iina/homebrew-mpv-iina\n\t$ brew install mpv-iina\n\t```\n\n\t#### With MacPorts\n\n\tPass in these flags when installing:\n\n\t```console\n\t# port install mpv +uchardet -bundle -rubberband configure.args=\"--enable-libmpv-shared --enable-lua --enable-libarchive --enable-libbluray --disable-swift --disable-rubberband\"\n\t```\n\n2. Copy the latest [header files from mpv](https://github.com/mpv-player/mpv/tree/master/libmpv) (\\*.h) into `deps/include/mpv/`.\n\n3. Run `other/parse_doc.rb`. This script will fetch the latest mpv documentation and generate `MPVOption.swift`, `MPVCommand.swift` and `MPVProperty.swift`. This is only needed when updating libmpv. Note that if the API changes, the player source code may also need to be changed.\n\n4. Run `other/change_lib_dependencies.rb`. This script will deploy the dependent libraries into `deps/lib`. If you're using a package manager to manage dependencies, invoke it like so:\n\n\t#### With Homebrew\n\t\n\t```console\n\t$ other/change_lib_dependencies.rb \"$(brew --prefix)\" \"$(brew --prefix mpv-iina)/lib/libmpv.dylib\"\n\t```\n\t\n\t#### With MacPorts\n\t\n\t```console\n\t$ port contents mpv | grep '\\.dylib$' | xargs other/change_lib_dependencies.rb /opt/local\n\t```\n\n5. Open iina.xcodeproj in the [latest public version of Xcode](https://itunes.apple.com/us/app/xcode/id497799835). *IINA may not build if you use any other version.*\n\n6. Remove all of references to .dylib files from the Frameworks group in the sidebar and drag all the .dylib files in `deps/lib` to that group.\n\n7. Drag all the .dylib files in `deps/lib` into the \"Embedded Binaries\" section of the iina target.\n\n8. Build the project.\n\n## Contributing\n\nIINA is always looking for contributions, whether it's through bug reports, code, or new translations.\n\n* If you find a bug in IINA, or would like to suggest a new feature or enhancement, it'd be nice if you could [search your problem first](https://github.com/iina/iina/issues); while we don't mind duplicates, keeping issues unique helps us save time and consolidates effort. If you can't find your issue, feel free to [file a new one](https://github.com/iina/iina/issues/new).\n\n* If you're looking to contribute code, please read [CONTRIBUTING.md](CONTRIBUTING.md)–it has information on IINA's process for handling contributions, and tips on how the code is structured to make your work easier.\n\n* If you'd like to translate IINA to your language, please visit [IINA's instance of Crowdin](https://translate.iina.io). You can create an account for free and start translating and/or approving. Please do not send pull request to this repo directly, Crowdin will automatically sync new translations with our repo. If you want to translate IINA into a new language that is currently not in the list, feel free to open an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesec%2Fiina","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesec%2Fiina","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesec%2Fiina/lists"}