{"id":13908193,"url":"https://github.com/shaka-project/shaka-player-embedded","last_synced_at":"2025-04-06T20:12:11.277Z","repository":{"id":43392839,"uuid":"155622228","full_name":"shaka-project/shaka-player-embedded","owner":"shaka-project","description":"Shaka Player in a C++ Framework","archived":false,"fork":false,"pushed_at":"2024-02-19T18:45:11.000Z","size":10006,"stargazers_count":239,"open_issues_count":99,"forks_count":62,"subscribers_count":35,"default_branch":"main","last_synced_at":"2024-05-18T18:02:16.441Z","etag":null,"topics":["cplusplus","dash","drm","encrypted-media","hls","ios","live","live-streaming","objective-c","playback","swift","video","video-playback","video-player","video-player-library","video-streaming","vod"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaka-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-10-31T20:55:25.000Z","updated_at":"2024-05-09T13:50:39.000Z","dependencies_parsed_at":"2024-04-22T22:30:54.936Z","dependency_job_id":null,"html_url":"https://github.com/shaka-project/shaka-player-embedded","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fshaka-player-embedded","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fshaka-player-embedded/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fshaka-player-embedded/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fshaka-player-embedded/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaka-project","download_url":"https://codeload.github.com/shaka-project/shaka-player-embedded/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415949,"owners_count":20935388,"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":["cplusplus","dash","drm","encrypted-media","hls","ios","live","live-streaming","objective-c","playback","swift","video","video-playback","video-player","video-player-library","video-streaming","vod"],"created_at":"2024-08-06T23:02:32.353Z","updated_at":"2025-04-06T20:12:11.259Z","avatar_url":"https://github.com/shaka-project.png","language":"C++","funding_links":[],"categories":["HarmonyOS","Players \u0026 Clients"],"sub_categories":["Windows Manager","Independent \u0026 Hobbyist Projects"],"readme":"# :warning: DEPRECATED :warning:\nDue to lack of internal funding and external maintainers, it is with great sadness that I announce the official shutdown of Shaka Player Embedded. The repo will remain available in archived form, and you may fork it and continue development under the terms of the Apache License if you wish.\n\nI'll wait to archive the repo until the end of March, 2024, so that this announcement can be discussed on https://github.com/shaka-project/shaka-player-embedded/issues/248.  After that deadline, I will archive the repo, putting it in a readonly state that will prevent further updates to issues.\n\n\n# Shaka Player Embedded\n\nShaka Player Embedded is a framework that runs [Shaka Player][] in native (C++)\napps.  This gives a cross-platform interface to Shaka Player allowing native\napps to use the player.  Your native apps can now be built with the same\nfeatures, behavior, and API as your Shaka-based web apps.\n\nIn addition to the C++ API, we provide a high-level wrapper for iOS called\n`ShakaPlayer` and `ShakaPlayerView` which can be used from either Objective-C or\nSwift.\n\nDocumentation: \u003chttps://shaka-project.github.io/shaka-player-embedded/\u003e\nTutorials: \u003chttps://shaka-project.github.io/shaka-player-embedded/usergroup0.html\u003e\nReleases: \u003chttps://github.com/shaka-project/shaka-player-embedded/releases\u003e\n\n[Shaka Player]: https://www.github.com/shaka-project/shaka-player\n\n\n## Platform support\n\nWe only support iOS at this time, but other platforms could be added.\n\nBecause many on our team use Linux, there is a Linux port included to make it\neasier to work on non-iOS-specific features.  Linux is not, however, a\nfirst-class target platform at this time.\n\n\n## API/ABI compatibility\n\nThis project follows [semantic versioning][], meaning we maintain backwards\ncompatibility with all minor releases, including ABI.  This means you can drop\nin a newer version of the compiled library and not have to recompile your main\napp (you'll need to re-sign it due to Apple requirements).\n\nMinor releases (e.g. v1.1) will add new features in a reverse-compatible way,\nbut major releases (e.g. v2.0) may break any compatibility.  We'll mark\ndeprecated features with compiler attributes to give you warnings about features\nthat will be removed later.  This may break API compatibility if you compile\nwith `-Werror`, but you can suppress the warnings.  Features will only be\nremoved in major releases.\n\n[semantic versioning]: https://semver.org/\n\n\n## Announcements \u0026 Issues\n\nIf you are interested in release and survey announcements, please join our\nmailing list: https://groups.google.com/forum/#!forum/shaka-player-users\n\nThis is a very low-volume list that only admins of the project may post to.\n\nFor issues or to start a discussion, please use github issues:\nhttps://github.com/shaka-project/shaka-player-embedded/issues\n\n\n## Widevine support\n\nWidevine support requires the Widevine CDM for iOS, which must be obtained\nseparately [from Widevine](http://www.widevine.com/contact), under license.\nThe Widevine CDM is not open-source.\n\nAdding Widevine support requires compiling from source; you cannot use the\npre-built versions.  Follow the instructions in the Widevine CDM repo for how\nto build it.\n\nThis requires the use of at least v15.2.3 of the Widevine CDM.\n\n\n## Setting up for development\n\n1. The source is managed by Git at\n\u003chttps://www.github.com/shaka-project/shaka-player-embedded\u003e.  You will need these\ntools available on your development system:\n\n* Git v1.7.5+\n* Python v2.7\n  * Requires installing package `enum34`\n* autoconf 2.57+\n  * m4\n  * automake 1.7+\n  * perl\n\nThis does not require a C++ compiler as it uses a pre-compiled version of\nclang downloaded from Google Cloud Storage.  However, it does require a C++11\ncompatible C++ library (installed with most compilers, e.g. gcc).\n\n2. Install Chromium depot tools, which contains ninja and other required tools.\nSee \u003chttps://www.chromium.org/developers/how-tos/install-depot-tools\u003e for\ndetails.\n\n3. Get the source\n\n```shell\ngit clone https://github.com/shaka-project/shaka-player-embedded.git\ncd shaka-player-embedded\n```\n\nWe use git submodules to manage third-party dependencies.  You can run\n`git submodule update` (or pass `--recurse-submodules` to `git clone`) to\ndownload all the submodules; or you can wait and have the `configure` script\ndownload only those you need.\n\n4. Configure and Build\n\nYou need to run `configure` to setup configuration settings.  You can pass\n--help to see some of the options you can use.  We don't support in-tree builds;\nyou need to run `configure` in another directory.\n\nOnce `configure` is done, you can build using `build.py`.  There is a Makefile\nthat will run the script for you if you prefer.\n\n```shell\nmkdir foo\ncd foo\n../configure\nmake\n```\n\n5. Copy the shared library\n\nOnce it is built, you can use the resulting shared library.\n\nOn iOS, there will be a `ShakaPlayerEmbedded.framework` folder that you use;\nthere is also a `ShakaPlayerEmbedded.FFmpeg.framework` bundle that you need to\ninclude in your app, but you shouldn't use it directly since we don't maintain\nABI for it.\n\nOn other platforms, there is a `libshaka-player-embedded.dylib` or a\n`libshaka-player-embedded.so` file you can use.  Like iOS, there is a\n`libshaka-player-embedded.ffmpeg.*` file you need to include too.\n\nIf you are using a custom `--eme-impl`, you need to copy the respective\nshared libraries too, if needed.\n\n\n## Running the checks\n\nIf you intend to send a pull-request, you need to ensure the code complies with\nstyle guidelines.  This is done with the `shaka/tools/presubmit.py` script,\nwhich can be run with `make check`.\n\nTo run all the checks, you also have to have `clang-tidy` installed.  It needs\nto be installed on `PATH`, or you can pass `--clang-tidy` to the script to tell\nit where to find the binary.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaka-project%2Fshaka-player-embedded","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaka-project%2Fshaka-player-embedded","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaka-project%2Fshaka-player-embedded/lists"}