Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ New video player #2388

Merged
merged 134 commits into from
Jun 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
8506cb1
🚧 Work on videoplayer rework
moisout Oct 2, 2023
2b60cfa
⬆️ upgrade lockfile
Oct 5, 2023
103e833
🚧 Work on new videoplayer
Oct 6, 2023
3a13ac5
🚧 Work on new videoplayer
Oct 7, 2023
16cd0f8
🚧 work on video player
moisout Oct 7, 2023
9811f49
🐛 Fix interaction and init
Oct 8, 2023
732277b
✨ Fullscreen and title
moisout Oct 8, 2023
af80cc8
🚧 Work on new video player
Nov 5, 2023
361e127
🐛 Small styling issues
moisout Nov 11, 2023
256466a
🚧 Work on preview thumbnails
moisout Nov 12, 2023
1acafeb
✨ Fully working preview thumbnails
moisout Nov 13, 2023
c848aa6
🐛 Fix build issues
moisout Nov 13, 2023
ab2bca1
🚧 Work on fixing autocomplete
moisout Nov 14, 2023
6eeb68a
🐛 Remove unused environment variable
moisout Nov 22, 2023
e24bf98
🐛 Fix autocomplete search field
moisout Jan 8, 2024
1c26dd2
⬆️ Upgrade packages
moisout Jan 8, 2024
7425e3b
✨ Implement desktop volume slider
moisout Jan 9, 2024
0c1bf8a
✅ Fix e2e test
moisout Jan 9, 2024
678b52d
🚧 Work on volume bar
moisout Jan 14, 2024
7cb2f8b
🐛 Center bottom pause buttons
moisout Jan 14, 2024
6728fa3
🚧 Add settings menu
moisout Jan 14, 2024
da1828f
🐛 Fix popup border radius
moisout Jan 14, 2024
7f51160
🚧 Work on shaka player implementation
moisout Jan 17, 2024
87ec060
🚧 Work on settings
moisout Jan 17, 2024
dc230bb
🚧 Implement basic shaka player adapter
moisout Jan 18, 2024
d7b5218
🚧 Work on shaka integration
moisout Jan 28, 2024
be064f4
🚧 Work on shaka player implementation
moisout Jan 28, 2024
8a99515
🚧 Language selection
moisout Jan 28, 2024
e23305b
Merge branch 'development' into feature/videoplayer-rework
moisout Feb 9, 2024
3a64be8
⬆️ Upgrade packages
moisout Feb 9, 2024
d7e3f22
🚸 make language collapsible
moisout Feb 9, 2024
8230e25
✨ Redo player settings menu
moisout Feb 9, 2024
8cea426
⬆️ Update patch
moisout Feb 12, 2024
8532b5a
✨ Show auto quality
moisout Feb 19, 2024
36a480e
Merge branch 'development' into feature/videoplayer-rework
moisout Feb 19, 2024
1cccedc
Merge branch 'development' into feature/videoplayer-rework
moisout Feb 24, 2024
434a507
✨ Quality selection working (not pretty yet, video only)
moisout Feb 25, 2024
74d96d0
🚸 Don't show quality if auto is not selected
moisout Feb 25, 2024
32fc573
Merge branch 'development' into feature/videoplayer-rework
moisout Mar 10, 2024
a559b4a
⬆️ Upgrade dependencies
moisout Mar 12, 2024
86b4ef6
✨ Split video and audio quality selection
moisout Mar 12, 2024
b2751b4
🐛 Fix HDR label
moisout Mar 12, 2024
092dfa1
⚰️ Remove dashAdapter
moisout Mar 12, 2024
b5a9792
🐛 Update trackLists more often
moisout Mar 12, 2024
83e0934
✨ Set max automatic quality to 1080p
moisout Mar 13, 2024
1f51993
✨ Allow muting and change icon on volume change
moisout Mar 13, 2024
9288805
🐛 Only play/pause on mouse leftclick
moisout Mar 13, 2024
dd4e0e1
✨ Implement keyboard shortcuts
moisout Mar 14, 2024
1b4168a
Merge branch 'development' into feature/videoplayer-rework
moisout Mar 14, 2024
72806ad
✨ Add effect icons on skip and volume change
moisout Mar 14, 2024
8acdeab
✅ Fix video playback test
moisout Mar 14, 2024
e47a03f
Merge branch 'development' into feature/videoplayer-rework
moisout Mar 16, 2024
ab6cd27
⬆️ Upgrade packages
moisout Mar 17, 2024
77ad8ab
🐛 Fix number regex
moisout Mar 17, 2024
3e2fccb
✨ Add HDR logo to quality selector
moisout Mar 17, 2024
4ea28ba
🐛 Fix clicking on timestamp
moisout Mar 17, 2024
4b0f46f
⬆️ Upgrade packages
moisout Mar 24, 2024
2336749
✨Add loading message to poster
moisout Mar 24, 2024
8ed4980
✨ Implement basic hover chapters
moisout Mar 24, 2024
6ba5770
🚧 Start work on captions support
moisout Mar 29, 2024
5e2a0e1
✨ Implement captions selector
moisout Apr 1, 2024
329bfe6
✨ Implement basic subtitle renderer
moisout Apr 1, 2024
7357ece
✨ Render subtitle properly
moisout Apr 2, 2024
40aed13
🐛 Delete 5USuekk16e0.json
moisout Apr 3, 2024
0c8be63
🐛 Delete euoyoat-e9c.json
moisout Apr 3, 2024
f22d061
Merge branch 'development' into feature/videoplayer-rework
moisout Apr 16, 2024
b0b80ef
⬆️ Upgrade packages
moisout Apr 16, 2024
b047721
🐛 Add missing dependency
moisout Apr 16, 2024
27d27dc
✨ press c to toggle captions
moisout Apr 16, 2024
1cf6306
⚡️ Move sponsorblock fetching to server
moisout Apr 16, 2024
a99d8b3
✨ Add setting for sponsorblock filler
moisout Apr 16, 2024
0107ef1
Merge branch 'development' into feature/videoplayer-rework
moisout Apr 17, 2024
7a7c649
🚨 Switch to flat eslint config, fix errors
moisout Apr 17, 2024
216e52a
🐛 Fix type imports for server
moisout Apr 20, 2024
47d0c54
🎨 Format server
moisout Apr 20, 2024
98d1133
Merge branch 'development' into feature/videoplayer-rework
moisout Apr 20, 2024
7d605f8
💚 Fix lint
moisout Apr 20, 2024
d3d2351
🚧 Work on sponsorblock implementation
moisout Apr 20, 2024
a48e54a
✨ Implement new seekbar preview with sponsorblock
moisout Apr 21, 2024
bbd10b4
✨ Sponsorblock skip button in video
moisout Apr 22, 2024
e2b4992
⬆️ Upgrade dependencies
moisout Apr 24, 2024
13c106f
🐛 Fix build
moisout Apr 24, 2024
7105cf4
🚧 Begin implementing rxplayer
moisout Apr 24, 2024
c0f8cbd
🚧 wip rxplayer
moisout Apr 26, 2024
69c6e21
🚧 WIP rxplayer
moisout Apr 26, 2024
01572d0
✨ Implement rxplayer quality selection
moisout Apr 29, 2024
da2f4d4
🐛 Fix keydownactions
moisout Apr 29, 2024
44fd932
✅ Fix watch test
moisout Apr 29, 2024
a16fa10
🏷️ Fix skipSegment types
moisout Apr 30, 2024
f7fd521
⬆️ Upgrade packages
moisout May 3, 2024
a73be17
✨ Auto-skip sponsorblock segments
moisout May 4, 2024
1e8a8ba
✨ Save and restore video position
moisout May 4, 2024
1aca0a7
✨ Support autoplay for new player
moisout May 5, 2024
fb839c2
🚧 WIP livestream support
moisout May 8, 2024
1527e51
🚧 WIP livestreams
moisout May 8, 2024
6520c94
🚧 WIP hls.js
moisout May 28, 2024
2ae2370
🚧 WIP Working livestreams
moisout May 28, 2024
12e87cc
⚡️ Switch server build to swc
moisout May 29, 2024
985dcfb
♻️ Build shared module as actual package
moisout May 29, 2024
cd7ac99
♻️ Adjust client to shared package refactoring
moisout May 29, 2024
eec7534
Merge branch 'development' into feature/videoplayer-rework
moisout May 29, 2024
0aef9f3
⬆️ Upgrade pnpm version
moisout May 29, 2024
2787645
👷 Update ci command
moisout May 29, 2024
da69988
Fix file ending
moisout May 29, 2024
cc01021
Merge branch 'feature/videoplayer-rework' of https://github.com/ViewT…
moisout May 29, 2024
382e09b
👷 Remove pnpmfile
moisout May 29, 2024
ed4af8c
🐛 Refresh lockfile
moisout May 29, 2024
e9746cc
🐛 Fix build
moisout May 30, 2024
232a8a3
🐛 Fix eslint
moisout May 30, 2024
8169346
🐛 Fix eslint
moisout May 30, 2024
99e5bfa
🐛 Fix server entrypoint
moisout May 30, 2024
eac0e4d
🐛 Fix poster invisible
moisout May 30, 2024
4ed1111
🐛 Fix peers for eslint 9
moisout May 30, 2024
47c4df1
🧪 Move API tests to cypress
moisout May 30, 2024
7654bf1
🧪 Move API tests to cypress
moisout May 30, 2024
95b21b9
🚨 Fix linter config
moisout May 30, 2024
204ad4a
🚨 Fix eslint warn
moisout May 30, 2024
e22b900
🎨 Format files
moisout May 30, 2024
ee8dc4b
⚰️ Remove old sample files
moisout May 30, 2024
9f8b075
🧑‍💻 Add prepare script to automatically prepare prerequisites
moisout May 30, 2024
d0ae80c
🐛 Fix script for windows
moisout May 30, 2024
369f3e1
✨ Implement playback controls
moisout May 31, 2024
244da38
🐛 Fix NaN cast error
moisout May 31, 2024
a1c1357
⬆️ Update deps
moisout Jun 4, 2024
d10776a
⬆️ Update deps
moisout Jun 5, 2024
ec598d8
✨ Implement embed
moisout Jun 6, 2024
bc662a4
🐛 Fix wrong prop
moisout Jun 6, 2024
bbdc62b
Merge branch 'development' into feature/videoplayer-rework
moisout Jun 9, 2024
fb4d0f0
✨ Param for custom URL for skipsegments
moisout Jun 9, 2024
3712c3a
Merge branch 'development' into feature/videoplayer-rework
moisout Jun 9, 2024
fe40384
🎨 format files
moisout Jun 9, 2024
0bb43a0
🐛 Fix tests workspace
moisout Jun 9, 2024
51ca5ad
✨ Sync sponsorblock URL
moisout Jun 9, 2024
8093406
🐛 Fix test types
moisout Jun 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 9 additions & 28 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
{
"files": [
"README.md"
],
"files": ["README.md"],
"imageSize": 100,
"commit": false,
"contributors": [
Expand All @@ -10,73 +8,56 @@
"name": "cyacedev",
"avatar_url": "https://avatars0.githubusercontent.com/u/46712905?v=4",
"profile": "https://github.com/cyacedev",
"contributions": [
"code",
"doc"
]
"contributions": ["code", "doc"]
},
{
"login": "ckVendrix",
"name": "Vendrix",
"avatar_url": "https://avatars2.githubusercontent.com/u/51775140?v=4",
"profile": "https://github.com/ckVendrix",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "Mennaruuk",
"name": "Mennaruuk",
"avatar_url": "https://avatars.githubusercontent.com/u/52135169?v=4",
"profile": "https://github.com/Mennaruuk",
"contributions": [
"doc"
]
"contributions": ["doc"]
},
{
"login": "mizzunet",
"name": "Missu",
"avatar_url": "https://avatars.githubusercontent.com/u/10193999?v=4",
"profile": "https://github.com/mizzunet",
"contributions": [
"doc"
]
"contributions": ["doc"]
},
{
"login": "beardeddude",
"name": "beardeddude",
"avatar_url": "https://avatars.githubusercontent.com/u/36680638?v=4",
"profile": "https://github.com/beardeddude",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "mattfbacon",
"name": "Matt Fellenz",
"avatar_url": "https://avatars.githubusercontent.com/u/58113890?v=4",
"profile": "http://matt.felle.nz",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "themisir",
"name": "Misir",
"avatar_url": "https://avatars.githubusercontent.com/u/29130291?v=4",
"profile": "http://themisir.com",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "alvanrahimli",
"name": "Alvan Rahimli",
"avatar_url": "https://avatars.githubusercontent.com/u/41202771?v=4",
"profile": "https://www.rahim.li",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "chonsser",
Expand Down
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ client/.output
client/.nuxt
server/node_modules
server/dist
shared/node_modules
shared/dist
2 changes: 1 addition & 1 deletion .github/workflows/build-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
version: 9
run_install: false

- name: Generate build metadata
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/pr-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
pr-job:
strategy:
matrix:
command: ['build', 'test', 'lint:client', 'lint:server']
command: ['build', 'lint']

name: ${{ matrix.command }}
timeout-minutes: 60
Expand All @@ -26,7 +26,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
version: 9
run_install: false

- name: Get pnpm store directory
Expand All @@ -45,6 +45,9 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Prepare .nuxt directory
run: pnpm run nuxt:prepare

- name: Generate build metadata
run: |
pnpm build:metadata
Expand All @@ -68,7 +71,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
version: 9
run_install: false

- name: Install e2e test dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
version: 9
run_install: false

- name: Install e2e test dependencies
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ sw.*
out/
out/*

data/*
data
!/server/data
output/*
.vs/*
Expand All @@ -44,6 +44,7 @@ dump.rdb
tests/cypress/screenshots
tests/cypress/videos
tests/cypress/downloads
tests/cypress/environment/data

Dockerfile.nodejs-mongodb
.vscode/.ropeproject/
Expand All @@ -55,3 +56,4 @@ client/buildMetadata.json
**/cache
generated.txt
original.txt
screenshots
1 change: 0 additions & 1 deletion .npmrc

This file was deleted.

13 changes: 0 additions & 13 deletions .pnpmfile.cjs

This file was deleted.

4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ client/assets/fonts
server/data
server/node_modules
server/dist
server/src/metadata.ts

# Shared
shared/node_modules
shared/src/api.schema.ts

# Tests
tests/node_modules

.all-contributorsrc
3 changes: 2 additions & 1 deletion .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"endOfLine": "lf",
"printWidth": 100,
"vueIndentScriptAndStyle": false,
"quoteProps": "as-needed"
"quoteProps": "as-needed",
"plugins": ["prettier-plugin-organize-imports"]
}
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"prettier.prettierPath": "node_modules/prettier/index.cjs",
"typescript.tsdk": "node_modules/typescript/lib",
"githubPullRequests.ignoredPullRequestBranches": ["development"]
"githubPullRequests.ignoredPullRequestBranches": ["development"],
"eslint.experimental.useFlatConfig": true
}
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
This file is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.16.0]

### Added

- Brand new video player (Checkout the wiki: https://viewtube.wiki/features/videoplayer) [#2388]

## [0.15.4]

### Fixed
Expand Down Expand Up @@ -86,7 +92,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Breaking ⚠️

- Disable clustering by default [#2377](https://github.com/ViewTube/viewtube/pull/2377)
- Clustering is now disabled by default. If you want to use clustering, you have to set the `VIEWTUBE_CLUSTERED` environment variable to `true`.
- Clustering is controlled by the `VIEWTUBE_CLUSTERED` environment variable [viewtube.wiki > advanced configuration](https://viewtube.wiki/installation/configuration#advanced-configuration).
If you have disabled clustering previously, you don't need to change anything.
If you want to keep clustering enabled, you need to set the `VIEWTUBE_CLUSTERED` environment variable to `true`.

### Added

Expand All @@ -104,6 +112,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix "window is not defined" when logged in and "Rewrite YouTube URLs" is enabled [#2469](https://github.com/ViewTube/viewtube/pull/2469)
- Fix certain search terms not working [#2493](https://github.com/ViewTube/viewtube/pull/2493)

## Removed

- Remove unused VIEWTUBE_YOUTUBE_IDENTIFIER environment variable [#2388](https://github.com/ViewTube/viewtube/pull/2388)

## [0.13.1]

### Fixed
Expand Down Expand Up @@ -427,7 +439,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Initial release

[unreleased]: https://github.com/viewtube/viewtube/compare/v0.15.4...development
[unreleased]: https://github.com/viewtube/viewtube/compare/v0.16.0...development
[0.16.0]: https://github.com/viewtube/viewtube/compare/v0.15.4...v0.16.0
[0.15.4]: https://github.com/viewtube/viewtube/compare/v0.15.3...v0.15.4
[0.15.3]: https://github.com/viewtube/viewtube/compare/v0.15.2...v0.15.3
[0.15.2]: https://github.com/viewtube/viewtube/compare/v0.15.1...v0.15.2
Expand Down
16 changes: 9 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
FROM node:20-bookworm as build
WORKDIR /home/build

ENV NUXT_BUILD=true

COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./

COPY server/package.json ./server/
COPY client/package.json ./client/
COPY shared/package.json ./shared/
COPY client/package.json ./client/
COPY client/scripts ./client/scripts
COPY patches ./patches

RUN npm install -g pnpm@8.15.7
RUN npm install -g pnpm@9.1.3

RUN pnpm --filter=./server --filter=./client install --frozen-lockfile
RUN pnpm install --frozen-lockfile

COPY . .

Expand All @@ -30,12 +29,15 @@ ENV NODE_ENV=production
COPY --from=build /home/build/package.json ./
COPY --from=build /home/build/client/package.json ./client/
COPY --from=build /home/build/server/package.json ./server/
COPY --from=build /home/build/shared/package.json ./shared/

COPY --from=build /home/build/node_modules ./node_modules
COPY --from=build /home/build/server/node_modules ./server/node_modules

COPY --from=build /home/build/server/dist ./server/dist/

COPY --from=build /home/build/shared/dist ./shared/dist/

COPY --from=build /home/build/client/.output ./client/.output/

RUN \
Expand All @@ -48,4 +50,4 @@ ENV VIEWTUBE_BASE_DIR=/home/app
HEALTHCHECK --interval=30s --timeout=20s --start-period=60s CMD wget --no-verbose --tries=3 --spider http://localhost:8066/ || exit 1
EXPOSE 8066

CMD ["node", "/home/app/server/dist/main.cjs"]
CMD ["node", "/home/app/server/dist/main.js"]
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ ViewTube is an alternative YouTube frontend that lets you watch, search and disc
It's built using [Nuxt](https://nuxt.com/) and [Nest](https://nestjs.com/).

> [!NOTE]
> You can find the documentation at [viewtube.wiki](https://viewtube.wiki)
Check [uptime.m-o.dev/status](https://uptime.m-o.dev/status) for updates and downtime status.
> You can find the documentation at [viewtube.wiki](https://viewtube.wiki).
> Check [uptime.m-o.dev/status](https://uptime.m-o.dev/status) for updates and downtime status.

<h2 align="center">
<sub>
Expand Down
6 changes: 0 additions & 6 deletions client/.eslintignore

This file was deleted.

25 changes: 0 additions & 25 deletions client/.eslintrc.js

This file was deleted.

14 changes: 10 additions & 4 deletions client/assets/styles/global/variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ $bottom-overlay-height: 60px;
$video-seekbar-height: 20px;
$video-seekbar-line-height: 3px;
$video-controls-height: $video-seekbar-height - $video-seekbar-line-height;
$video-player-gradient: linear-gradient(to bottom, #000000da, #0000);
$video-player-gradient: linear-gradient(to bottom, rgba(0, 0, 0, 0.94), transparent);

$home-offset: 200px;

Expand All @@ -14,9 +14,15 @@ $watch-break-width: 380px;
$header-font: 'expletus-bold', 'Open Sans', sans-serif;
$default-font: 'noto-sans', Arial, sans-serif;

$max-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
$medium-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
$low-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
$max-shadow:
0 14px 28px rgba(0, 0, 0, 0.25),
0 10px 10px rgba(0, 0, 0, 0.22);
$medium-shadow:
0 3px 6px rgba(0, 0, 0, 0.16),
0 3px 6px rgba(0, 0, 0, 0.23);
$low-shadow:
0 1px 3px rgba(0, 0, 0, 0.12),
0 1px 2px rgba(0, 0, 0, 0.24);

$intro-easing: cubic-bezier(0.31, 0.65, 0.26, 0.97);
$outro-easing: cubic-bezier(0.71, 0.21, 1, 0.46);
Expand Down