{"id":15028409,"url":"https://github.com/chocobozzz/peertube","last_synced_at":"2026-02-26T11:22:33.466Z","repository":{"id":37450731,"uuid":"45213667","full_name":"Chocobozzz/PeerTube","owner":"Chocobozzz","description":"ActivityPub-federated video streaming platform using P2P directly in your web browser","archived":false,"fork":false,"pushed_at":"2025-09-05T08:38:10.000Z","size":465931,"stargazers_count":13992,"open_issues_count":684,"forks_count":1619,"subscribers_count":308,"default_branch":"develop","last_synced_at":"2025-09-05T20:53:36.194Z","etag":null,"topics":["activitypub","angular","decentralized","p2p","video"],"latest_commit_sha":null,"homepage":"https://joinpeertube.org/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chocobozzz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"support/conf.d/peertube","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://soutenir.framasoft.org/en/"]}},"created_at":"2015-10-29T22:09:42.000Z","updated_at":"2025-09-05T19:40:56.000Z","dependencies_parsed_at":"2023-12-20T14:28:54.851Z","dependency_job_id":"94134659-6ec6-43d7-a0e9-491b7bf2982a","html_url":"https://github.com/Chocobozzz/PeerTube","commit_stats":{"total_commits":13356,"total_committers":664,"mean_commits":20.1144578313253,"dds":0.4853998203054807,"last_synced_commit":"1c5f16ed63c4103d51cc7bc7eadc94a6a873bf74"},"previous_names":[],"tags_count":152,"template":false,"template_full_name":null,"purl":"pkg:github/Chocobozzz/PeerTube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chocobozzz%2FPeerTube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chocobozzz%2FPeerTube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chocobozzz%2FPeerTube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chocobozzz%2FPeerTube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chocobozzz","download_url":"https://codeload.github.com/Chocobozzz/PeerTube/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chocobozzz%2FPeerTube/sbom","scorecard":{"id":29338,"data":{"date":"2025-08-11","repo":{"name":"github.com/Chocobozzz/PeerTube","commit":"d1a35e8421195088e2754b787c4af1e765b9eaa9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.7,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 19 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":"Code-Review","score":0,"reason":"Found 2/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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:27","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:28","Info: found token with 'none' permissions: .github/workflows/benchmark.yml:1","Info: found token with 'none' permissions: .github/workflows/codeql.yml:1","Info: found token with 'none' permissions: .github/workflows/doc.yml:1","Info: found token with 'none' permissions: .github/workflows/docker.yml:1","Info: found token with 'none' permissions: .github/workflows/nightly.yml:1","Info: found token with 'none' permissions: .github/workflows/stats.yml:1","Info: found token with 'none' permissions: .github/workflows/test.yml: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":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: peertube-v7.2.3.tar.xz.asc: https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.3","Info: signed release artifact: peertube-v7.2.2.tar.xz.asc: https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.2","Info: signed release artifact: peertube-v7.2.1.tar.xz.asc: https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.1","Info: signed release artifact: peertube-v7.2.0.tar.xz.asc: https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.0","Info: signed release artifact: peertube-v7.2.0-rc.1.tar.xz.asc: https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.0-rc.1","Warn: release artifact v7.2.3 does not have provenance: https://api.github.com/repos/Chocobozzz/PeerTube/releases/234169172","Warn: release artifact v7.2.2 does not have provenance: https://api.github.com/repos/Chocobozzz/PeerTube/releases/232825207","Warn: release artifact v7.2.1 does not have provenance: https://api.github.com/repos/Chocobozzz/PeerTube/releases/225484263","Warn: release artifact v7.2.0 does not have provenance: https://api.github.com/repos/Chocobozzz/PeerTube/releases/223068512","Warn: release artifact v7.2.0-rc.1 does not have provenance: https://api.github.com/repos/Chocobozzz/PeerTube/releases/218736351"],"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker.yml:37"],"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":"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":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 2 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"}},{"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":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/benchmark.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/doc.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/doc.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/doc.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/doc.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/docker.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/nightly.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/nightly.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stats.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/stats.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/test.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/test.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/test.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/test.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/Chocobozzz/PeerTube/test.yml/develop?enable=pin","Warn: containerImage not pinned by hash: support/docker/gitpod/Dockerfile:1: pin your Docker image by updating gitpod/workspace-postgres to gitpod/workspace-postgres@sha256:1bca95b222e78c45b5d389f97ec08053bc36a85aaa4e91404ad991fed7b3a725","Warn: containerImage not pinned by hash: support/docker/production/Dockerfile.bookworm:1: pin your Docker image by updating node:20-bookworm-slim to node:20-bookworm-slim@sha256:ef358d9fa0734e2c3b42482aa352c28a59245bc3d32e07ef57810cf8ba9092c5","Warn: containerImage not pinned by hash: support/docker/production/Dockerfile.nginx:1: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:d67ea0d64d518b1bb04acde3b00f722ac3e9764b3209a9b0a98924ba35e4b779","Warn: npmCommand not pinned by hash: scripts/ci.sh:53","Warn: pipCommand not pinned by hash: .github/workflows/doc.yml:24","Warn: npmCommand not pinned by hash: .github/workflows/stats.yml:48","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:  11 out of  13 npmCommand dependencies pinned","Info:   0 out of   1 pipCommand 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":"Vulnerabilities","score":1,"reason":"9 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-95jq-xph2-cx9h","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T18:40:26.967Z","repository_id":37450731,"created_at":"2025-08-14T18:40:26.967Z","updated_at":"2025-08-14T18:40:26.967Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274358719,"owners_count":25270680,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["activitypub","angular","decentralized","p2p","video"],"created_at":"2024-09-24T20:08:15.684Z","updated_at":"2026-02-26T11:22:33.398Z","avatar_url":"https://github.com/Chocobozzz.png","language":"TypeScript","funding_links":["https://soutenir.framasoft.org/en/"],"categories":["Federated Protocols"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://joinpeertube.org\"\u003e\n    \u003cimg src=\"https://joinpeertube.org/img/brand.png\" alt=\"PeerTube\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=center\u003e\n  \u003cstrong\u003e\u003ca href=\"https://joinpeertube.org\"\u003eWebsite\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://joinpeertube.org/instances\"\u003eJoin an instance\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://github.com/Chocobozzz/PeerTube/blob/develop/README.md#package-create-your-own-instance\"\u003eCreate an instance\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://github.com/Chocobozzz/PeerTube/blob/develop/README.md#contact\"\u003eChat with us\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://framasoft.org/en/#soutenir\"\u003eDonate\u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nBe part of a network of multiple small federated, interoperable video hosting providers. Follow video creators and create videos. No vendor lock-in. All on a platform that is community-owned and ad-free.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eDeveloped with \u0026#10084; by \u003ca href=\"https://framasoft.org\"\u003eFramasoft\u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://framasoft.org\"\u003e\n    \u003cimg width=\"150px\" src=\"https://lutim.cpy.re/FeRgHH8r.png\" alt=\"Framasoft logo\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Chocobozzz/PeerTube/actions?query=workflow%3A%22Test%22+branch%3Adevelop\"\u003e\n    \u003cimg src=\"https://github.com/Chocobozzz/PeerTube/workflows/Test/badge.svg\" alt=\"GitHub Test Status\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://automate.browserstack.com/public-build/d0ZMeGpSUFRjaUpDNnN3NUdKY1l2TnNpTGVJaUI0bm9hYkNxMTRtQ1lHTT0tLVZQa2crbFB1c2RDZUl1Y1Blck02SFE9PQ==--5f956d6857c50e06a0b7b1fe405fb93d0f2d0e11%\"\u003e\n    \u003cimg src=\"https://automate.browserstack.com/badge.svg?badge_key=d0ZMeGpSUFRjaUpDNnN3NUdKY1l2TnNpTGVJaUI0bm9hYkNxMTRtQ1lHTT0tLVZQa2crbFB1c2RDZUl1Y1Blck02SFE9PQ==--5f956d6857c50e06a0b7b1fe405fb93d0f2d0e11%\" alt=\"BrowserStack Status\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://weblate.framasoft.org/projects/peertube/angular/\"\u003e\n    \u003cimg src=\"https://weblate.framasoft.org/widgets/peertube/-/angular/svg-badge.svg\" alt=\"Weblate Status\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3\"\u003e\n    \u003cimg src=\"https://lutim.cpy.re/9CLXh0Ys.png\" alt=\"screenshot\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nIntroduction\n----------------------------------------------------------------\n\nPeerTube is a free, decentralized and federated video platform developed as an alternative to other platforms that centralize our data and attention, such as YouTube, Dailymotion or Vimeo. :clapper:\n\nTo learn more:\n* This [two-minute video](https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3) (hosted on PeerTube) explaining what PeerTube is and how it works\n* PeerTube's project homepage, [joinpeertube.org](https://joinpeertube.org)\n* Demonstration instances:\n  * [peertube.cpy.re](https://peertube.cpy.re) (stable)\n  * [peertube2.cpy.re](https://peertube2.cpy.re) (Nightly)\n  * [peertube3.cpy.re](https://peertube3.cpy.re) (RC)\n* This [video](https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701) demonstrating the communication between PeerTube and [Mastodon](https://github.com/tootsuite/mastodon) (a decentralized Twitter alternative)\n\n:sparkles: Features\n----------------------------------------------------------------\n\n\u003cp align=center\u003e\n  \u003cstrong\u003e\u003ca href=\"https://joinpeertube.org/faq#what-are-the-peertube-features-for-viewers\"\u003eAll features for viewers\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://joinpeertube.org/faq#what-are-the-peertube-features-for-content-creators\"\u003eAll features for content creators\u003c/a\u003e\u003c/strong\u003e\n  | \u003cstrong\u003e\u003ca href=\"https://joinpeertube.org/faq#what-are-the-peertube-features-for-administrators\"\u003eAll features for administrators\u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cimg src=\"https://lutim.cpy.re/AHbctLjn.png\" align=\"left\" height=\"300px\"/\u003e\n\u003ch3 align=\"left\"\u003eVideo streaming, even in live!\u003c/h3\u003e\n\u003cp align=\"left\"\u003e\nJust upload your videos, and be sure they will stream anywhere. Add a description, some tags and your video will be discoverable by the entire video fediverse, not just your instance. You can even embed a player on your favorite website!\n\u003c/p\u003e\n\u003cp align=\"left\"\u003e\nYou are used to hosting live events? We got you covered too! Start livestreaming from your favorite client, and even host permanent streams!\n\u003c/p\u003e\n\n---\n\n\u003cimg src=\"https://lutim.cpy.re/cxWccUK7.png\" align=\"right\" height=\"200px\"/\u003e\n\n\u003ch3 align=\"right\"\u003eKeep in touch with video creators\u003c/h3\u003e\n\u003cp align=\"right\"\u003e\nFollow your favorite channels from PeerTube or really any other place. No need to have an account on the instance you watched a video to follow its author, you can do all of that from the Fediverse (Mastodon, Pleroma, and plenty others), or just with good ol' RSS.\n\u003c/p\u003e\n\n---\n\n\u003cimg src=\"https://lutim.cpy.re/K07EhFbt.png\" align=\"left\" height=\"200px\"/\u003e\n\n\u003ch3 align=\"left\"\u003eAn interface to call home\u003c/h3\u003e\n\u003cp align=\"left\"\u003e\nBe it as a user or an instance administrator, you can decide what your experience will be like. Don't like the colors? They are easy to change. Don't want to list videos of an instance but let your users subscribe to them? Don't like the regular web client? All of that can be changed, and much more. No UX dark pattern, no mining your data, no video recommendation bullshit™.\n\u003c/p\u003e\n\n---\n\n\u003ch3 align=\"right\"\u003eCommunities that help each other\u003c/h3\u003e\n\u003cp align=\"right\"\u003e\nIn addition to visitors using P2P with WebRTC to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our \u003ca href=\"https://docs.joinpeertube.org/contribute/architecture#redundancy-between-instances\"\u003eredundancy guide\u003c/a\u003e).\n\u003c/p\u003e\n\u003cp align=\"right\"\u003e\nContent creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and alter creativity (more about that in our \u003ca href=\"https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md\"\u003eFAQ\u003c/a\u003e).\n\u003c/p\u003e\n\n\n\n:raised_hands: Contributing\n----------------------------------------------------------------\n\nYou don't need to be a programmer to help!\n\nYou can give us your feedback, report bugs, help us translate PeerTube, write documentation, and more. Check out the [contributing\nguide](https://docs.joinpeertube.org/contribute/getting-started) to know how, it takes less than 2 minutes to get started. :wink:\n\nYou can also join the cheerful bunch that makes our community:\n\n* Chat\u003ca name=\"contact\"\u003e\u003c/a\u003e:\n  * Matrix (bridged on IRC and [Discord](https://discord.gg/wj8DDUT)) : **[#peertube:matrix.org](https://matrix.to/#/#peertube:matrix.org)**\n  * IRC : **[#peertube on irc.libera.chat:6697](https://web.libera.chat/#peertube)**\n* Forum:\n  * Framacolibri: [https://framacolibri.org/c/peertube](https://framacolibri.org/c/peertube)\n\nFeel free to reach out if you have any questions or ideas! :speech_balloon:\n\n:package: Create your own instance\n----------------------------------------------------------------\n\nSee the [production guide](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md), which is the recommended way to install or upgrade PeerTube. For hardware requirements, see [Should I have a big server to run PeerTube?](https://joinpeertube.org/faq#should-i-have-a-big-server-to-run-peertube) in the FAQ.\n\nSee the [community packages](https://docs.joinpeertube.org/install/unofficial), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md)).\n\n:book: Documentation\n----------------------------------------------------------------\n\nIf you have a question, please try to find the answer in the [FAQ](https://joinpeertube.org/faq) first.\n\n### User documentation\n\nSee the [user documentation](https://docs.joinpeertube.org/use/setup-account).\n\n### Admin documentation\n\nSee [how to create your own instance](https://github.com/Chocobozzz/PeerTube/blob/develop/README.md#package-create-your-own-instance).\n\nSee the more general [admin documentation](https://docs.joinpeertube.org/admin/following-instances).\n\n### Tools documentation\n\nLearn how to import/upload videos from CLI or admin your PeerTube instance with the [tools documentation](https://docs.joinpeertube.org/maintain/tools).\n\n### Technical documentation\n\nSee the [architecture blueprint](https://docs.joinpeertube.org/contribute/architecture) for a more detailed explanation of the architectural choices.\n\nSee our REST API documentation:\n  * OpenAPI 3.0.0 schema: [/support/doc/api/openapi.yaml](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/api/openapi.yaml)\n  * Spec explorer: [docs.joinpeertube.org/api-rest-reference.html](https://docs.joinpeertube.org/api-rest-reference.html)\n\nSee our [ActivityPub documentation](https://docs.joinpeertube.org/api/activitypub).\n\n## License\n\n### Logo\n\n[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/), by [Framasoft](https://framasoft.org)\n\n### Code\n\nCopyright (C) 2015-2024 PeerTube Contributors (see [CREDITS.md](/CREDITS.md))\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program 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 Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchocobozzz%2Fpeertube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchocobozzz%2Fpeertube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchocobozzz%2Fpeertube/lists"}