{"id":13512529,"url":"https://github.com/ViewTube/viewtube","last_synced_at":"2025-03-30T22:32:54.007Z","repository":{"id":37105470,"uuid":"197559490","full_name":"ViewTube/viewtube","owner":"ViewTube","description":"▶️ ViewTube: The open source, privacy-conscious way to enjoy your favorite YouTube content. Docs: https://viewtube.wiki, Status: https://uptime.viewtube.io","archived":false,"fork":false,"pushed_at":"2024-10-29T15:06:05.000Z","size":57243,"stargazers_count":1320,"open_issues_count":74,"forks_count":75,"subscribers_count":24,"default_branch":"development","last_synced_at":"2024-10-29T15:17:57.529Z","etag":null,"topics":["docker","nuxt","streaming","subscriptions","typescript","video","viewtube","vuejs","youtube","youtube-player"],"latest_commit_sha":null,"homepage":"https://viewtube.io","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/ViewTube.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["viewtube"]}},"created_at":"2019-07-18T09:48:25.000Z","updated_at":"2024-10-28T07:28:04.000Z","dependencies_parsed_at":"2023-12-02T20:07:57.027Z","dependency_job_id":"57c04a7b-4979-4580-bd3a-be2bfcef1277","html_url":"https://github.com/ViewTube/viewtube","commit_stats":{"total_commits":3096,"total_committers":26,"mean_commits":"119.07692307692308","dds":0.5080749354005167,"last_synced_commit":"44606cfd5daf3d6f64c1c7899b1d1d58f8d47c61"},"previous_names":["viewtube/viewtube-vue"],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewTube%2Fviewtube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewTube%2Fviewtube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewTube%2Fviewtube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewTube%2Fviewtube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViewTube","download_url":"https://codeload.github.com/ViewTube/viewtube/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238161534,"owners_count":19426686,"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":["docker","nuxt","streaming","subscriptions","typescript","video","viewtube","vuejs","youtube","youtube-player"],"created_at":"2024-08-01T03:01:59.523Z","updated_at":"2025-03-30T22:32:53.998Z","avatar_url":"https://github.com/ViewTube.png","language":"TypeScript","funding_links":["https://github.com/sponsors/viewtube"],"categories":["TypeScript","docker"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\"https://raw.githubusercontent.com/ViewTube/viewtube/development/.github/images/logo.png\"\n      height=\"50\"\n      width=\"50\"\u003e\n\u003c/sub\u003e\nViewTube\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ViewTube/viewtube/actions/workflows/push-build-workflow.yml\"\u003e\n    \u003cimg src=\"https://github.com/ViewTube/viewtube/actions/workflows/push-build-workflow.yml/badge.svg?branch=development\" alt=\"Github Actions Status\"\u003e \n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ViewTube/viewtube/actions/workflows/build-nightly-workflow.yml\"\u003e\n    \u003cimg src=\"https://github.com/ViewTube/viewtube/actions/workflows/build-nightly-workflow.yml/badge.svg?branch=development\" alt=\"Github Actions Status\"\u003e \n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ViewTube/viewtube/actions/workflows/test-workflow.yml\"\u003e\n    \u003cimg src=\"https://github.com/ViewTube/viewtube/actions/workflows/test-workflow.yml/badge.svg?branch=development\" alt=\"Daily Tests Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/mauriceo/viewtube\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/image-size/mauriceo/viewtube/dev?label=docker%20image\" alt=\"Docker Image Size (tag)\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/viewtube/viewtube\" alt=\"GitHub last commit\"\u003e\n\u003c/p\u003e\n\n\u003e [!WARNING]\n\u003e Project semi-paused at the moment. Read here: [#3002](https://github.com/ViewTube/viewtube/discussions/3002)\n\nViewTube is an alternative YouTube frontend that lets you watch, search and discover YouTube videos without ads or tracking. It's built to be mobile and desktop friendly, with dark and light themes, and a touch-friendly video player with gestures. You can create an account separately from YouTube, read comments, watch playlists, subscribe to channels and receive push notifications for new uploads.  \nIt's built using [Nuxt](https://nuxt.com/) and [Nest](https://nestjs.com/).\n\n\u003e [!NOTE]\n\u003e You can find the documentation at [viewtube.wiki](https://viewtube.wiki).  \n\u003e Check [uptime.viewtube.io](https://uptime.viewtube.io) for updates and downtime status.\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/star.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nFeatures\n\u003c/h2\u003e\n\n- Watch videos without ads or tracking\n- Built from the ground up to be mobile and desktop friendly\n- Dark and light themes\n- Touch friendly video player with gestures\n- Supports loop, speed, autoplay and volume\n- Create an account separately from Youtube\n- Read comments\n- Search for videos\n- Watch playlists\n- Subscribe to channels and see their latest uploads\n- Receive push notifications for subscribed channels\n- Integrated SponsorBlock support\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/question.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nWhere does ViewTube get the data from?\n\u003c/h2\u003e\n\nViewTube does not use the official Youtube API. It instead scrapes the data from the website using a combination of custom built tools and the following open source libraries.\n\n- [YouTube.js](https://github.com/LuanRT/YouTube.js)\n- [node-ytpl](https://github.com/TimeForANinja/node-ytpl)\n- [yt-comment-scraper](https://github.com/FreeTubeApp/yt-comment-scraper)\n- [yt-channel-info](https://github.com/FreeTubeApp/yt-channel-info)\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/screenshot.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nScreenshots\n\u003c/h2\u003e\n\n\u003ch3 align=\"center\"\u003e\nHomepage\n\u003c/h3\u003e\n\n![Screenshot-Homepage](https://i.ibb.co/Gk5tKQ7/lxt1y0mk.jpg)\n\n\u003ch3 align=\"center\"\u003e\nVideo\n\u003c/h3\u003e\n\n![Screenshot-Video](https://i.ibb.co/RTL2v3f/g2ejf7wf.jpg)\n\n\u003ch3 align=\"center\"\u003e\nChannel\n\u003c/h3\u003e\n\n![Screenshot-Channel](https://i.ibb.co/h9mf1yd/6j45ao5r.jpg)\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/home.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nHost it yourself\n\u003c/h2\u003e\n\nA comprehensive installation guide is available in the [wiki](https://viewtube.wiki/installation)\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/dev.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nDevelopment setup\n\u003c/h2\u003e\n\nCheck out the [wiki](https://viewtube.wiki/development) for a guide on how to set up the development environment.\n\n\u003ch2 align=\"center\"\u003e\n\u003csub\u003e\n\u003cimg  src=\".github/icons/people.svg\"\n      height=\"30\"\n      width=\"30\"\u003e\n\u003c/sub\u003e\nContributors\n\u003c/h2\u003e\n\nThanks goes to these wonderful people\n\n[emoji reference](https://allcontributors.org/docs/en/emoji-key)\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/cyacedev\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/46712905?v=4?s=100\" width=\"100px;\" alt=\"cyacedev\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ecyacedev\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=cyacedev\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=cyacedev\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ckVendrix\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/51775140?v=4?s=100\" width=\"100px;\" alt=\"Vendrix\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVendrix\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=ckVendrix\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Mennaruuk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/52135169?v=4?s=100\" width=\"100px;\" alt=\"Mennaruuk\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMennaruuk\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=Mennaruuk\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/mizzunet\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10193999?v=4?s=100\" width=\"100px;\" alt=\"Missu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMissu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=mizzunet\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/beardeddude\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/36680638?v=4?s=100\" width=\"100px;\" alt=\"beardeddude\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebeardeddude\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=beardeddude\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://matt.felle.nz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/58113890?v=4?s=100\" width=\"100px;\" alt=\"Matt Fellenz\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMatt Fellenz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=mattfbacon\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://themisir.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/29130291?v=4?s=100\" width=\"100px;\" alt=\"Misir\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMisir\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=themisir\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.rahim.li\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41202771?v=4?s=100\" width=\"100px;\" alt=\"Alvan Rahimli\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlvan Rahimli\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=alvanrahimli\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://wtf.city\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10325355?v=4?s=100\" width=\"100px;\" alt=\"Dominik Szymański\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDominik Szymański\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=chonsser\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://quentinfranchi.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11914315?v=4?s=100\" width=\"100px;\" alt=\"Quentin Franchi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eQuentin Franchi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=nargacu83\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/frozenduck\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/63501031?v=4?s=100\" width=\"100px;\" alt=\"frozenduck\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003efrozenduck\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=frozenduck\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/patricgruber\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12413072?v=4?s=100\" width=\"100px;\" alt=\"Patric Gruber\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatric Gruber\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=patricgruber\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=patricgruber\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/JoshuaVandaele\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/24195176?v=4?s=100\" width=\"100px;\" alt=\"Joshua Vandaële\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJoshua Vandaële\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/ViewTube/viewtube/commits?author=JoshuaVandaele\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FViewTube%2Fviewtube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FViewTube%2Fviewtube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FViewTube%2Fviewtube/lists"}