Skip to content

Commit 75c09ff

Browse files
dependabot[bot]absiduePikachuEXE
authored
Bump youtubei.js from 13.4.0 to 15.0.0 (#7701)
* Bump youtubei.js from 13.4.0 to 15.0.0 --- updated-dependencies: - dependency-name: youtubei.js dependency-version: 15.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * Fixes related to the breaking changes * ! Fix our usage on API with breaking changes * ! Fix license property not defined --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: absidue <[email protected]> Co-authored-by: PikachuEXE <[email protected]>
1 parent a2d3bbb commit 75c09ff

File tree

4 files changed

+20
-29
lines changed

4 files changed

+20
-29
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"vue-observe-visibility": "^1.0.0",
7474
"vue-router": "^3.6.5",
7575
"vuex": "^3.6.2",
76-
"youtubei.js": "^13.4.0"
76+
"youtubei.js": "^15.0.0"
7777
},
7878
"devDependencies": {
7979
"@babel/core": "^7.28.0",

src/renderer/helpers/api/local.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ async function createInnertube({ withPlayer = false, location = undefined, safet
5050
// This setting is enabled by default and results in YouTube.js reusing the same session across different Innertube instances.
5151
// That behavior is highly undesirable for FreeTube, as we want to create a new session every time to limit tracking.
5252
enable_session_cache: false,
53-
retrieve_innertube_config: false,
53+
retrieve_innertube_config: !generateSessionLocally,
5454
user_agent: navigator.userAgent,
5555

5656
retrieve_player: !!withPlayer,
@@ -213,7 +213,6 @@ export async function getLocalVideoInfo(id) {
213213
JSON.stringify(webInnertube.session.context)
214214
))
215215

216-
webInnertube.session.po_token = contentPoToken
217216
webInnertube.session.player.po_token = sessionPoToken
218217
} catch (error) {
219218
console.error('Local API, poToken generation failed', error)
@@ -223,10 +222,10 @@ export async function getLocalVideoInfo(id) {
223222

224223
let clientName = webInnertube.session.context.client.clientName
225224

226-
const info = await webInnertube.getInfo(id)
225+
const info = await webInnertube.getInfo(id, { po_token: contentPoToken })
227226

228227
// temporary workaround for SABR-only responses
229-
const mwebInfo = await webInnertube.getBasicInfo(id, 'MWEB')
228+
const mwebInfo = await webInnertube.getBasicInfo(id, { client: 'MWEB', po_token: contentPoToken })
230229

231230
if (mwebInfo.playability_status.status === 'OK' && mwebInfo.streaming_data) {
232231
info.playability_status = mwebInfo.playability_status
@@ -246,16 +245,12 @@ export async function getLocalVideoInfo(id) {
246245
const webEmbeddedInnertube = await createInnertube({ clientType: ClientType.WEB_EMBEDDED })
247246
webEmbeddedInnertube.session.context.client.visitorData = webInnertube.session.context.client.visitorData
248247

249-
if (contentPoToken) {
250-
webEmbeddedInnertube.session.po_token = contentPoToken
251-
}
252-
253248
const videoId = hasTrailer && trailerIsAgeRestricted ? info.playability_status.error_screen.video_id : id
254249

255250
// getBasicInfo needs the signature timestamp (sts) from inside the player
256251
webEmbeddedInnertube.session.player = webInnertube.session.player
257252

258-
const bypassedInfo = await webEmbeddedInnertube.getBasicInfo(videoId, 'WEB_EMBEDDED')
253+
const bypassedInfo = await webEmbeddedInnertube.getBasicInfo(videoId, { client: 'WEB_EMBEDDED', po_token: contentPoToken })
259254

260255
if (bypassedInfo.playability_status.status === 'OK' && bypassedInfo.streaming_data) {
261256
info.playability_status = bypassedInfo.playability_status
@@ -1284,7 +1279,7 @@ function parseLockupView(lockupView, channelId = undefined, channelName = undefi
12841279

12851280
let viewCount = null
12861281

1287-
const viewsText = lockupView.metadata.metadata?.metadata_rows[1].metadata_parts?.[0].text?.text
1282+
const viewsText = lockupView.metadata.metadata?.metadata_rows[1]?.metadata_parts?.[0].text?.text
12881283

12891284
if (viewsText) {
12901285
const views = parseLocalSubscriberCount(viewsText)

src/renderer/views/Watch/Watch.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ export default defineComponent({
9191
videoTitle: '',
9292
videoDescription: '',
9393
videoDescriptionHtml: '',
94+
license: '',
9495
videoViewCount: 0,
9596
videoLikeCount: 0,
9697
videoDislikeCount: 0,
@@ -1488,8 +1489,10 @@ export default defineComponent({
14881489
* @param {boolean} includeThumbnails
14891490
*/
14901491
createLocalDashManifest: async function (videoInfo, includeThumbnails = false) {
1491-
const xmlData = await videoInfo.toDash(undefined, undefined, {
1492-
include_thumbnails: includeThumbnails
1492+
const xmlData = await videoInfo.toDash({
1493+
manifest_options: {
1494+
include_thumbnails: includeThumbnails,
1495+
},
14931496
})
14941497

14951498
return `data:application/dash+xml;charset=UTF-8,${encodeURIComponent(xmlData)}`

yarn.lock

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,11 +1095,6 @@
10951095
"@eslint/core" "^0.14.0"
10961096
levn "^0.4.1"
10971097

1098-
"@fastify/busboy@^2.0.0":
1099-
version "2.0.0"
1100-
resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8"
1101-
integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==
1102-
11031098
"@fortawesome/[email protected]":
11041099
version "6.7.2"
11051100
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz#7123d74b0c1e726794aed1184795dbce12186470"
@@ -8526,12 +8521,10 @@ undici-types@~6.20.0:
85268521
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
85278522
integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
85288523

8529-
undici@^5.19.1:
8530-
version "5.29.0"
8531-
resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3"
8532-
integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==
8533-
dependencies:
8534-
"@fastify/busboy" "^2.0.0"
8524+
undici@^6.21.3:
8525+
version "6.21.3"
8526+
resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.3.tgz#185752ad92c3d0efe7a7d1f6854a50f83b552d7a"
8527+
integrity sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==
85358528

85368529
unicode-canonical-property-names-ecmascript@^2.0.0:
85378530
version "2.0.0"
@@ -9116,12 +9109,12 @@ yocto-queue@^0.1.0:
91169109
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
91179110
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
91189111

9119-
youtubei.js@^13.4.0:
9120-
version "13.4.0"
9121-
resolved "https://registry.yarnpkg.com/youtubei.js/-/youtubei.js-13.4.0.tgz#1f52d7ed0ccabd5ba718eede84771aa32683d9e2"
9122-
integrity sha512-+fmIZU/dWAjsROONrASy1REwVpy6umAPVuoNLr/4iNmZXl84LyBef0n3hrd1Vn9035EuINToGyQcBmifwUEemA==
9112+
youtubei.js@^15.0.0:
9113+
version "15.0.0"
9114+
resolved "https://registry.yarnpkg.com/youtubei.js/-/youtubei.js-15.0.0.tgz#c5ca88c6a1a289846aca2f7ce7147fce1316b40b"
9115+
integrity sha512-giPZREn+q0z8Jr45NUcJUXE7QA2+UD2jx5FR+ULdnexvtHg5uQZr9Am8aYcECPKzbBNe6ksBD1yT4SKNbhpRqA==
91239116
dependencies:
91249117
"@bufbuild/protobuf" "^2.0.0"
91259118
jintr "^3.3.1"
91269119
tslib "^2.5.0"
9127-
undici "^5.19.1"
9120+
undici "^6.21.3"

0 commit comments

Comments
 (0)