Compare commits

..

11 Commits

Author SHA1 Message Date
TC
6fd10ea4a0 Bump version to 1.1.6 2019-09-11 23:49:31 +02:00
TC
746b5f13bb Fix Google login 2019-09-11 23:46:19 +02:00
474bfd19a2 Merge pull request #7 from th-ch/dependabot/npm_and_yarn/eslint-utils-1.4.2
Bump eslint-utils from 1.3.1 to 1.4.2
2019-09-03 13:41:20 +02:00
71222649a0 Bump eslint-utils from 1.3.1 to 1.4.2
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-26 22:51:08 +00:00
TC
1a72129108 npm audit fix 2019-07-13 19:51:01 +02:00
3108e16018 Merge pull request #4 from th-ch/dependabot/npm_and_yarn/lodash.mergewith-4.6.2
Bump lodash.mergewith from 4.6.1 to 4.6.2
2019-07-13 19:47:14 +02:00
fae19f4533 Merge pull request #5 from th-ch/dependabot/npm_and_yarn/lodash-4.17.14
Bump lodash from 4.17.11 to 4.17.14
2019-07-13 19:47:01 +02:00
348f1b8189 Bump lodash from 4.17.11 to 4.17.14
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-13 05:20:15 +00:00
ffdc7f66b9 Bump lodash.mergewith from 4.6.1 to 4.6.2
Bumps [lodash.mergewith](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 10:21:14 +00:00
TC
07c4a429c1 Bump version to 1.1.5 2019-07-06 20:04:53 +02:00
TC
b10a1bb32d Fix navigation plugin 2019-07-06 20:03:29 +02:00
8 changed files with 222 additions and 132 deletions

View File

@ -42,8 +42,10 @@ function createMainWindow() {
backgroundColor: "#000", backgroundColor: "#000",
show : false, show : false,
webPreferences : { webPreferences : {
nodeIntegration: false, nodeIntegration : false,
preload : path.join(__dirname, "preload.js") preload : path.join(__dirname, "preload.js"),
nativeWindowOpen: true, // window.open return Window object(like in regular browsers), not BrowserWindowProxy
affinity : "main-window" // main window, and addition windows should work in one process
}, },
frame : !is.macOS(), frame : !is.macOS(),
titleBarStyle: is.macOS() ? "hiddenInset": "default" titleBarStyle: is.macOS() ? "hiddenInset": "default"
@ -86,6 +88,17 @@ function createMainWindow() {
} }
}); });
win.webContents.on(
"new-window",
(e, url, frameName, disposition, options) => {
// hook on new opened window
// at now new window in mainWindow renderer process.
// Also, this will automatically get an option `nodeIntegration=false`(not override to true, like in iframe's) - like in regular browsers
options.webPreferences.affinity = "main-window";
}
);
win.on("move", () => { win.on("move", () => {
let position = win.getPosition(); let position = win.getPosition();
store.set("window-position", { x: position[0], y: position[1] }); store.set("window-position", { x: position[0], y: position[1] });

70
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "youtube-music", "name": "youtube-music",
"version": "1.1.3", "version": "1.1.6",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -111,7 +111,7 @@
"integrity": "sha512-VtLcSSIUKzLG9BnWx6LbWjtesYTUxddAxiqn7Ih0o9lLD0XBKIX1IPPYm4uJF+Pri4Fj5bqqmfeh8bsOu0Ju5A==", "integrity": "sha512-VtLcSSIUKzLG9BnWx6LbWjtesYTUxddAxiqn7Ih0o9lLD0XBKIX1IPPYm4uJF+Pri4Fj5bqqmfeh8bsOu0Ju5A==",
"requires": { "requires": {
"bloom-filter-cpp": "^1.2.2", "bloom-filter-cpp": "^1.2.2",
"hashset-cpp": "^2.1.1", "hashset-cpp": "^2.2.1",
"nan": "^2.10.0" "nan": "^2.10.0"
}, },
"dependencies": { "dependencies": {
@ -2461,10 +2461,13 @@
} }
}, },
"eslint-utils": { "eslint-utils": {
"version": "1.3.1", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
"integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
"dev": true "dev": true,
"requires": {
"eslint-visitor-keys": "^1.0.0"
}
}, },
"eslint-visitor-keys": { "eslint-visitor-keys": {
"version": "1.0.0", "version": "1.0.0",
@ -4115,9 +4118,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.11", "version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
"dev": true "dev": true
}, },
"lodash.assign": { "lodash.assign": {
@ -4150,9 +4153,9 @@
"dev": true "dev": true
}, },
"lodash.mergewith": { "lodash.mergewith": {
"version": "4.6.1", "version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
"integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
"dev": true "dev": true
}, },
"lodash.snakecase": { "lodash.snakecase": {
@ -4364,9 +4367,9 @@
} }
}, },
"mixin-deep": { "mixin-deep": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true, "dev": true,
"requires": { "requires": {
"for-in": "^1.0.2", "for-in": "^1.0.2",
@ -5610,9 +5613,9 @@
"dev": true "dev": true
}, },
"set-value": { "set-value": {
"version": "2.0.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend-shallow": "^2.0.1", "extend-shallow": "^2.0.1",
@ -6465,38 +6468,15 @@
"dev": true "dev": true
}, },
"union-value": { "union-value": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true, "dev": true,
"requires": { "requires": {
"arr-union": "^3.1.0", "arr-union": "^3.1.0",
"get-value": "^2.0.6", "get-value": "^2.0.6",
"is-extendable": "^0.1.1", "is-extendable": "^0.1.1",
"set-value": "^0.4.3" "set-value": "^2.0.1"
},
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
},
"set-value": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
"is-plain-object": "^2.0.1",
"to-object-path": "^0.3.0"
}
}
} }
}, },
"unique-string": { "unique-string": {

View File

@ -1,60 +1,60 @@
{ {
"name" : "youtube-music", "name": "youtube-music",
"productName": "YouTube Music", "productName": "YouTube Music",
"version" : "1.1.4", "version": "1.1.6",
"description": "YouTube Music Desktop App - including custom plugins", "description": "YouTube Music Desktop App - including custom plugins",
"license" : "MIT", "license": "MIT",
"repository" : "th-ch/youtube-music", "repository": "th-ch/youtube-music",
"author" : { "author": {
"name" : "th-ch", "name": "th-ch",
"email": "th-ch@users.noreply.github.com", "email": "th-ch@users.noreply.github.com",
"url" : "https://github.com/th-ch/youtube-music" "url": "https://github.com/th-ch/youtube-music"
}, },
"build": { "build": {
"appId" : "com.github.th-ch.youtube-music", "appId": "com.github.th-ch.youtube-music",
"productName": "YouTube Music", "productName": "YouTube Music",
"mac" : { "mac": {
"identity": null, "identity": null,
"icon" : "assets/generated/icons/mac/icon.icns" "icon": "assets/generated/icons/mac/icon.icns"
}, },
"win": { "win": {
"icon": "assets/generated/icons/win/icon.ico" "icon": "assets/generated/icons/win/icon.ico"
}, },
"linux": { "linux": {
"icon" : "assets/generated/icons/png", "icon": "assets/generated/icons/png",
"category": "AudioVideo" "category": "AudioVideo"
} }
}, },
"scripts": { "scripts": {
"test" : "xo", "test": "xo",
"start" : "electron .", "start": "electron .",
"icon" : "rimraf assets/generated && electron-icon-maker --input=assets/youtube-music.png --output=assets/generated", "icon": "rimraf assets/generated && electron-icon-maker --input=assets/youtube-music.png --output=assets/generated",
"postinstall" : "npm run icon && npm rebuild && node plugins/adblocker/generator.js && electron-rebuild", "postinstall": "npm run icon && npm rebuild && node plugins/adblocker/generator.js && electron-rebuild",
"clean" : "rimraf dist", "clean": "rimraf dist",
"build" : "npm run clean && build --win --mac --linux", "build": "npm run clean && build --win --mac --linux",
"build:mac" : "npm run clean && build --mac", "build:mac": "npm run clean && build --mac",
"build:win" : "npm run clean && build --win", "build:win": "npm run clean && build --win",
"release:linux": "npm run clean && build --linux -p always", "release:linux": "npm run clean && build --linux -p always",
"release:mac" : "npm run clean && build --mac -p always", "release:mac": "npm run clean && build --mac -p always",
"release:win" : "npm run clean && build --win -p always" "release:win": "npm run clean && build --win -p always"
}, },
"dependencies": { "dependencies": {
"ad-block" : "^4.1.3", "ad-block": "^4.1.3",
"electron-debug" : "^2.0.0", "electron-debug": "^2.0.0",
"electron-is" : "^3.0.0", "electron-is": "^3.0.0",
"electron-localshortcut": "^3.1.0", "electron-localshortcut": "^3.1.0",
"electron-store" : "^2.0.0", "electron-store": "^2.0.0",
"electron-updater" : "^4.0.6" "electron-updater": "^4.0.6"
}, },
"devDependencies": { "devDependencies": {
"devtron" : "^1.4.0", "devtron": "^1.4.0",
"electron" : "^4.0.8", "electron": "^4.0.8",
"electron-builder" : "^20.40.2", "electron-builder": "^20.40.2",
"electron-devtools-installer": "^2.2.4", "electron-devtools-installer": "^2.2.4",
"electron-icon-maker" : "0.0.4", "electron-icon-maker": "0.0.4",
"electron-rebuild" : "^1.8.4", "electron-rebuild": "^1.8.4",
"rimraf" : "^2.6.3", "rimraf": "^2.6.3",
"xo" : "^0.24.0" "xo": "^0.24.0"
}, },
"xo": { "xo": {
"envs": [ "envs": [

View File

@ -1,7 +1,10 @@
const { listenAction } = require("../utils"); const path = require("path");
const { ACTIONS, CHANNEL } = require("./actions.js");
const { injectCSS, listenAction } = require("../utils");
const { ACTIONS, CHANNEL } = require("./actions.js");
function handle(win) { function handle(win) {
injectCSS(win.webContents, path.join(__dirname, "style.css"));
listenAction(CHANNEL, (event, action) => { listenAction(CHANNEL, (event, action) => {
switch (action) { switch (action) {
case ACTIONS.NEXT: case ACTIONS.NEXT:

View File

@ -1,14 +1,15 @@
const { ElementFromFile, templatePath } = require('../utils'); const { ElementFromFile, templatePath } = require("../utils");
function run() { function run() {
const forwardButton = ElementFromFile(templatePath(__dirname, 'forward.html')); const forwardButton = ElementFromFile(
const backButton = ElementFromFile(templatePath(__dirname, 'back.html')); templatePath(__dirname, "forward.html")
const menu = document.querySelector("ytmusic-pivot-bar-renderer"); );
const backButton = ElementFromFile(templatePath(__dirname, "back.html"));
const menu = document.querySelector("ytmusic-pivot-bar-renderer");
if (menu) { if (menu) {
menu.prepend(forwardButton); menu.prepend(backButton, forwardButton);
menu.prepend(backButton); }
}
} }
module.exports = run; module.exports = run;

View File

@ -0,0 +1,36 @@
.navigation-item {
font-family : Roboto, Noto Naskh Arabic UI, Arial, sans-serif;
font-size : 20px;
line-height : var(--ytmusic-title-1_-_line-height);
font-weight : 500;
color : #fff;
--yt-endpoint-color : #fff;
--yt-endpoint-hover-color : #fff;
--yt-endpoint-visited-color: #fff;
display : inline-flex;
align-items : center;
color : rgba(255, 255, 255, 0.5);
cursor : pointer;
margin : 0 var(--ytmusic-pivot-bar-tab-margin);
}
.navigation-item:hover {
color: #fff;
}
.navigation-icon {
display : inline-flex;
-ms-flex-align : center;
-webkit-align-items : center;
align-items : center;
-ms-flex-pack : center;
-webkit-justify-content: center;
justify-content : center;
position : relative;
vertical-align : middle;
fill : var(--iron-icon-fill-color, currentcolor);
stroke : none;
width : var(--iron-icon-width, 24px);
height : var(--iron-icon-height, 24px);
animation : var(--iron-icon_-_animation);
}

View File

@ -1,21 +1,51 @@
<ytmusic-pivot-bar-item-renderer class="style-scope ytmusic-pivot-bar-renderer" tab-id="FEmusic_back" role="tab" onclick="goToPreviousPage()"> <div
<yt-icon class="tab-icon style-scope ytmusic-pivot-bar-item-renderer"> class="style-scope ytmusic-pivot-bar-renderer navigation-item"
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"> tab-id="FEmusic_back"
<g class="style-scope yt-icon"> role="tab"
<path class="st0" d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z" class="style-scope yt-icon"> onclick="goToPreviousPage()"
</path> >
</g> <div
</svg> class="tab-icon style-scope ytmusic-pivot-bar-item-renderer yt-icon-container"
</yt-icon> >
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
class="st0"
d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</div>
<paper-icon-button class="search-icon style-scope ytmusic-search-box" role="button" tabindex="0" aria-disabled="false" title="Go to previous page"> <div
<iron-icon id="icon" class="style-scope paper-icon-button"> class="search-icon style-scope ytmusic-search-box"
<svg viewBox="0 0 492 492" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"> role="button"
<g class="style-scope iron-icon"> tabindex="0"
<path class="st0" d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z"> aria-disabled="false"
</path> title="Go to previous page"
</g> >
</svg> <div id="icon" class="style-scope paper-icon-button navigation-icon">
</iron-icon> <svg
</paper-icon-button> viewBox="0 0 492 492"
</ytmusic-pivot-bar-item-renderer> preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope iron-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope iron-icon">
<path
class="st0"
d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z"
></path>
</g>
</svg>
</div>
</div>
</div>

View File

@ -1,26 +1,53 @@
<ytmusic-pivot-bar-item-renderer class="style-scope ytmusic-pivot-bar-renderer" tab-id="FEmusic_next" role="tab" onclick="goToNextPage()"> <div
<yt-icon class="tab-icon style-scope ytmusic-pivot-bar-item-renderer"> class="style-scope ytmusic-pivot-bar-renderer navigation-item"
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"> tab-id="FEmusic_next"
<g class="style-scope yt-icon"> role="tab"
<path d="M382.678,226.804L163.73,7.86C158.666,2.792,151.906,0,144.698,0s-13.968,2.792-19.032,7.86l-16.124,16.12 onclick="goToNextPage()"
>
<div class="tab-icon style-scope ytmusic-pivot-bar-item-renderer">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M382.678,226.804L163.73,7.86C158.666,2.792,151.906,0,144.698,0s-13.968,2.792-19.032,7.86l-16.124,16.12
c-10.492,10.504-10.492,27.576,0,38.064L293.398,245.9l-184.06,184.06c-5.064,5.068-7.86,11.824-7.86,19.028 c-10.492,10.504-10.492,27.576,0,38.064L293.398,245.9l-184.06,184.06c-5.064,5.068-7.86,11.824-7.86,19.028
c0,7.212,2.796,13.968,7.86,19.04l16.124,16.116c5.068,5.068,11.824,7.86,19.032,7.86s13.968-2.792,19.032-7.86L382.678,265 c0,7.212,2.796,13.968,7.86,19.04l16.124,16.116c5.068,5.068,11.824,7.86,19.032,7.86s13.968-2.792,19.032-7.86L382.678,265
c5.076-5.084,7.864-11.872,7.848-19.088C390.542,238.668,387.754,231.884,382.678,226.804z" class="style-scope yt-icon"> c5.076-5.084,7.864-11.872,7.848-19.088C390.542,238.668,387.754,231.884,382.678,226.804z"
</path> class="style-scope yt-icon"
</g> ></path>
</svg> </g>
</yt-icon> </svg>
</div>
<paper-icon-button class="search-icon style-scope ytmusic-search-box" role="button" tabindex="0" aria-disabled="false" title="Go to next page"> <div
<iron-icon id="icon" class="style-scope paper-icon-button"> class="search-icon style-scope ytmusic-search-box"
<svg viewBox="0 0 492 492" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"> role="button"
<g class="style-scope iron-icon"> tabindex="0"
<path class="st0" d="M382.7,226.8L163.7,7.9c-5.1-5.1-11.8-7.9-19-7.9s-14,2.8-19,7.9L109.5,24c-10.5,10.5-10.5,27.6,0,38.1 aria-disabled="false"
title="Go to next page"
>
<div id="icon" class="style-scope paper-icon-button navigation-icon">
<svg
viewBox="0 0 492 492"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope iron-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope iron-icon">
<path
class="st0"
d="M382.7,226.8L163.7,7.9c-5.1-5.1-11.8-7.9-19-7.9s-14,2.8-19,7.9L109.5,24c-10.5,10.5-10.5,27.6,0,38.1
l183.9,183.9L109.3,430c-5.1,5.1-7.9,11.8-7.9,19c0,7.2,2.8,14,7.9,19l16.1,16.1c5.1,5.1,11.8,7.9,19,7.9s14-2.8,19-7.9L382.7,265 l183.9,183.9L109.3,430c-5.1,5.1-7.9,11.8-7.9,19c0,7.2,2.8,14,7.9,19l16.1,16.1c5.1,5.1,11.8,7.9,19,7.9s14-2.8,19-7.9L382.7,265
c5.1-5.1,7.9-11.9,7.8-19.1C390.5,238.7,387.8,231.9,382.7,226.8z"> c5.1-5.1,7.9-11.9,7.8-19.1C390.5,238.7,387.8,231.9,382.7,226.8z"
</path> ></path>
</g> </g>
</svg> </svg>
</iron-icon> </div>
</paper-icon-button> </div>
</ytmusic-pivot-bar-item-renderer> </div>