Repository: sigma67/ytmusicapi
Pull request #630 (2024-07-20 20:15:30)

 get_playlist: fix artists for unnoficial videos (#627) 
Fix for #627.

In the scope of this PR the new logic has been removed for albums. So for albums `flexColumns` are hardcoded and for playlist they are still resolved using `navigationEndpoints`. There are border cases with columns without `navigationEndpoint`, where I have to guess their meaning. Those cases are different for albums and for playlists, so I cannot use the same logic for both methods. Albums always have the same order of `flexColumns`, so dynamic resolving is not needed there.

Now it's safe to assume that first column without `navigationEndpoint` is an artist column.

Additionally I added some tests for `get_playlist`. I prepared json for collaborative playlist with all types of tracks that has been problematic in the recent days:

- regular song
- uploaded song
- unofficial video
- podcast episode

Asserts will check if all those tracks have title and artist and if there is album for regular songs. I added the same asserts for already existing tests with mocked jsons in `get_playlist` and `get_album`.



Patch:
diff --git a/pdm.lock b/pdm.lock
index 5043c6d..f1a63d6 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -3,10 +3,13 @@
 
 [metadata]
 groups = ["default", "dev"]
-strategy = ["cross_platform", "inherit_metadata"]
-lock_version = "4.4.2"
+strategy = ["inherit_metadata"]
+lock_version = "4.5.0"
 content_hash = "sha256:b45b0ba6ccf35995df6ec6d37e59c7b18c94840a78ef3727e2a8a8bdf678b84a"
 
+[[metadata.targets]]
+requires_python = ">=3.9"
+
 [[package]]
 name = "alabaster"
 version = "0.7.16"
@@ -24,6 +27,9 @@ version = "2.15.0"
 requires_python = ">=3.8"
 summary = "Internationalization utilities"
 groups = ["dev"]
+dependencies = [
+    "pytz>=2015.7; python_version < \"3.9\"",
+]
 files = [
     {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"},
     {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"},
@@ -283,6 +289,7 @@ summary = "Read metadata from Python packages"
 groups = ["dev"]
 marker = "python_version < \"3.10\""
 dependencies = [
+    "typing-extensions>=3.6.4; python_version < \"3.8\"",
     "zipp>=0.5",
 ]
 files = [
@@ -367,38 +374,38 @@ files = [
 
 [[package]]
 name = "mypy"
-version = "1.10.1"
+version = "1.11.0"
 requires_python = ">=3.8"
 summary = "Optional static typing for Python"
 groups = ["dev"]
 dependencies = [
     "mypy-extensions>=1.0.0",
     "tomli>=1.1.0; python_version < \"3.11\"",
-    "typing-extensions>=4.1.0",
-]
-files = [
-    {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"},
-    {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"},
-    {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"},
-    {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"},
-    {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"},
-    {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"},
-    {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"},
-    {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"},
-    {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"},
-    {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"},
-    {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"},
-    {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"},
-    {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"},
-    {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"},
-    {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"},
-    {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"},
-    {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"},
-    {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"},
-    {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"},
-    {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"},
-    {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"},
-    {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"},
+    "typing-extensions>=4.6.0",
+]
+files = [
+    {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"},
+    {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"},
+    {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"},
+    {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"},
+    {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"},
+    {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"},
+    {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"},
+    {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"},
+    {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"},
+    {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"},
+    {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"},
+    {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"},
+    {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"},
+    {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"},
+    {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"},
+    {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"},
+    {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"},
+    {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"},
+    {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"},
+    {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"},
+    {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"},
+    {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"},
 ]
 
 [[package]]
@@ -447,7 +454,7 @@ files = [
 
 [[package]]
 name = "pytest"
-version = "8.2.2"
+version = "8.3.1"
 requires_python = ">=3.8"
 summary = "pytest: simple powerful testing with Python"
 groups = ["dev"]
@@ -456,12 +463,12 @@ dependencies = [
     "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"",
     "iniconfig",
     "packaging",
-    "pluggy<2.0,>=1.5",
+    "pluggy<2,>=1.5",
     "tomli>=1; python_version < \"3.11\"",
 ]
 files = [
-    {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"},
-    {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"},
+    {file = "pytest-8.3.1-py3-none-any.whl", hash = "sha256:e9600ccf4f563976e2c99fa02c7624ab938296551f280835ee6516df8bc4ae8c"},
+    {file = "pytest-8.3.1.tar.gz", hash = "sha256:7e8e5c5abd6e93cb1cc151f23e57adc31fcf8cfd2a3ff2da63e23f732de35db6"},
 ]
 
 [[package]]
@@ -512,29 +519,29 @@ files = [
 
 [[package]]
 name = "ruff"
-version = "0.5.1"
+version = "0.5.4"
 requires_python = ">=3.7"
 summary = "An extremely fast Python linter and code formatter, written in Rust."
 groups = ["dev"]
 files = [
-    {file = "ruff-0.5.1-py3-none-linux_armv6l.whl", hash = "sha256:6ecf968fcf94d942d42b700af18ede94b07521bd188aaf2cd7bc898dd8cb63b6"},
-    {file = "ruff-0.5.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:204fb0a472f00f2e6280a7c8c7c066e11e20e23a37557d63045bf27a616ba61c"},
-    {file = "ruff-0.5.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d235968460e8758d1e1297e1de59a38d94102f60cafb4d5382033c324404ee9d"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38beace10b8d5f9b6bdc91619310af6d63dd2019f3fb2d17a2da26360d7962fa"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e478d2f09cf06add143cf8c4540ef77b6599191e0c50ed976582f06e588c994"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0368d765eec8247b8550251c49ebb20554cc4e812f383ff9f5bf0d5d94190b0"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3a9a9a1b582e37669b0138b7c1d9d60b9edac880b80eb2baba6d0e566bdeca4d"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bdd9f723e16003623423affabcc0a807a66552ee6a29f90eddad87a40c750b78"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be9fd62c1e99539da05fcdc1e90d20f74aec1b7a1613463ed77870057cd6bd96"},
-    {file = "ruff-0.5.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e216fc75a80ea1fbd96af94a6233d90190d5b65cc3d5dfacf2bd48c3e067d3e1"},
-    {file = "ruff-0.5.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c4c2112e9883a40967827d5c24803525145e7dab315497fae149764979ac7929"},
-    {file = "ruff-0.5.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:dfaf11c8a116394da3b65cd4b36de30d8552fa45b8119b9ef5ca6638ab964fa3"},
-    {file = "ruff-0.5.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d7ceb9b2fe700ee09a0c6b192c5ef03c56eb82a0514218d8ff700f6ade004108"},
-    {file = "ruff-0.5.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bac6288e82f6296f82ed5285f597713acb2a6ae26618ffc6b429c597b392535c"},
-    {file = "ruff-0.5.1-py3-none-win32.whl", hash = "sha256:5c441d9c24ec09e1cb190a04535c5379b36b73c4bc20aa180c54812c27d1cca4"},
-    {file = "ruff-0.5.1-py3-none-win_amd64.whl", hash = "sha256:b1789bf2cd3d1b5a7d38397cac1398ddf3ad7f73f4de01b1e913e2abc7dfc51d"},
-    {file = "ruff-0.5.1-py3-none-win_arm64.whl", hash = "sha256:2875b7596a740cbbd492f32d24be73e545a4ce0a3daf51e4f4e609962bfd3cd2"},
-    {file = "ruff-0.5.1.tar.gz", hash = "sha256:3164488aebd89b1745b47fd00604fb4358d774465f20d1fcd907f9c0fc1b0655"},
+    {file = "ruff-0.5.4-py3-none-linux_armv6l.whl", hash = "sha256:82acef724fc639699b4d3177ed5cc14c2a5aacd92edd578a9e846d5b5ec18ddf"},
+    {file = "ruff-0.5.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:da62e87637c8838b325e65beee485f71eb36202ce8e3cdbc24b9fcb8b99a37be"},
+    {file = "ruff-0.5.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e98ad088edfe2f3b85a925ee96da652028f093d6b9b56b76fc242d8abb8e2059"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c55efbecc3152d614cfe6c2247a3054cfe358cefbf794f8c79c8575456efe19"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9b85eaa1f653abd0a70603b8b7008d9e00c9fa1bbd0bf40dad3f0c0bdd06793"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf497a47751be8c883059c4613ba2f50dd06ec672692de2811f039432875278"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:09c14ed6a72af9ccc8d2e313d7acf7037f0faff43cde4b507e66f14e812e37f7"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:628f6b8f97b8bad2490240aa84f3e68f390e13fabc9af5c0d3b96b485921cd60"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3520a00c0563d7a7a7c324ad7e2cde2355733dafa9592c671fb2e9e3cd8194c1"},
+    {file = "ruff-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93789f14ca2244fb91ed481456f6d0bb8af1f75a330e133b67d08f06ad85b516"},
+    {file = "ruff-0.5.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:029454e2824eafa25b9df46882f7f7844d36fd8ce51c1b7f6d97e2615a57bbcc"},
+    {file = "ruff-0.5.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9492320eed573a13a0bc09a2957f17aa733fff9ce5bf00e66e6d4a88ec33813f"},
+    {file = "ruff-0.5.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a6e1f62a92c645e2919b65c02e79d1f61e78a58eddaebca6c23659e7c7cb4ac7"},
+    {file = "ruff-0.5.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:768fa9208df2bec4b2ce61dbc7c2ddd6b1be9fb48f1f8d3b78b3332c7d71c1ff"},
+    {file = "ruff-0.5.4-py3-none-win32.whl", hash = "sha256:e1e7393e9c56128e870b233c82ceb42164966f25b30f68acbb24ed69ce9c3a4e"},
+    {file = "ruff-0.5.4-py3-none-win_amd64.whl", hash = "sha256:58b54459221fd3f661a7329f177f091eb35cf7a603f01d9eb3eb11cc348d38c4"},
+    {file = "ruff-0.5.4-py3-none-win_arm64.whl", hash = "sha256:bd53da65f1085fb5b307c38fd3c0829e76acf7b2a912d8d79cadcdb4875c1eb7"},
+    {file = "ruff-0.5.4.tar.gz", hash = "sha256:2795726d5f71c4f4e70653273d1c23a8182f07dd8e48c12de5d867bfb7557eed"},
 ]
 
 [[package]]
diff --git a/ytmusicapi/navigation.py b/ytmusicapi/navigation.py
index c46aade..7bf89fa 100644
--- a/ytmusicapi/navigation.py
+++ b/ytmusicapi/navigation.py
@@ -6,6 +6,7 @@ CONTENT = ["contents", 0]
 RUN_TEXT = ["runs", 0, "text"]
 TAB_CONTENT = ["tabs", 0, "tabRenderer", "content"]
 TAB_1_CONTENT = ["tabs", 1, "tabRenderer", "content"]
+TAB_2_CONTENT = ["tabs", 2, "tabRenderer", "content"]
 TWO_COLUMN_RENDERER = ["contents", "twoColumnBrowseResultsRenderer"]
 SINGLE_COLUMN = ["contents", "singleColumnBrowseResultsRenderer"]
 SINGLE_COLUMN_TAB = SINGLE_COLUMN + TAB_CONTENT
diff --git a/ytmusicapi/parsers/library.py b/ytmusicapi/parsers/library.py
index abb6ed5..1e2f279 100644
--- a/ytmusicapi/parsers/library.py
+++ b/ytmusicapi/parsers/library.py
@@ -122,7 +122,7 @@ def get_library_contents(response, renderer):
     section = nav(response, SINGLE_COLUMN_TAB + SECTION_LIST, True)
     contents = None
     if section is None:  # empty library
-        contents = nav(response, SINGLE_COLUMN + TAB_1_CONTENT + SECTION_LIST_ITEM + renderer, True)
+        contents = nav(response, SINGLE_COLUMN + TAB_2_CONTENT + SECTION_LIST_ITEM + renderer, True)
     else:
         results = find_object_by_key(section, "itemSectionRenderer")
         if results is None:
diff --git a/ytmusicapi/parsers/playlists.py b/ytmusicapi/parsers/playlists.py
index 3cd75fb..0fd395a 100644
--- a/ytmusicapi/parsers/playlists.py
+++ b/ytmusicapi/parsers/playlists.py
@@ -101,11 +101,13 @@ def parse_playlist_item(
     if "musicItemRendererDisplayPolicy" in data:
         isAvailable = data["musicItemRendererDisplayPolicy"] != "MUSIC_ITEM_RENDERER_DISPLAY_POLICY_GREY_OUT"
 
-    # For unavailable items indexes are preset,
-    # because meaning of the flex column cannot be found using navigationEndpoint
-    title_index = 0 if isAvailable is False else None
-    artist_index = 1 if isAvailable is False else None
-    album_index = 2 if isAvailable is False else None
+    # For unavailable items and for album track lists indexes are preset,
+    # because meaning of the flex column cannot be reliably found using navigationEndpoint
+    use_preset_columns = True if isAvailable is False or is_album is True else None
+
+    title_index = 0 if use_preset_columns else None
+    artist_index = 1 if use_preset_columns else None
+    album_index = 2 if use_preset_columns else None
     user_channel_indexes = []
     unrecognized_index = None
 
@@ -114,7 +116,8 @@ def parse_playlist_item(
         navigation_endpoint = nav(flex_column_item, [*TEXT_RUN, "navigationEndpoint"], True)
 
         if not navigation_endpoint:
-            unrecognized_index = index if unrecognized_index is None else unrecognized_index
+            if nav(flex_column_item, TEXT_RUN_TEXT, True) is not None:
+                unrecognized_index = index if unrecognized_index is None else unrecognized_index
             continue
 
         if "watchEndpoint" in navigation_endpoint:
diff --git a/ytmusicapi/parsers/podcasts.py b/ytmusicapi/parsers/podcasts.py
index 06e1abc..a709cd2 100644
--- a/ytmusicapi/parsers/podcasts.py
+++ b/ytmusicapi/parsers/podcasts.py
@@ -2,6 +2,9 @@ from dataclasses import dataclass
 
 from .songs import *
 
+PROGRESS_RENDERER = ["musicPlaybackProgressRenderer"]
+DURATION_TEXT = ["durationText", "runs", 1, "text"]
+
 
 @dataclass
 class DescriptionElement:
@@ -83,8 +86,8 @@ def parse_episode_header(header: dict) -> dict:
     metadata["date"] = nav(header, [*SUBTITLE2])
     metadata["duration"] = nav(header, [*SUBTITLE3], True)
     if not metadata["duration"]:  # progress started
-        progress_renderer = nav(header, ["progress", "musicPlaybackProgressRenderer"])
-        metadata["duration"] = nav(progress_renderer, ["durationText", "runs", 1, "text"], True)
+        progress_renderer = nav(header, ["progress", *PROGRESS_RENDERER])
+        metadata["duration"] = nav(progress_renderer, DURATION_TEXT, True)
         metadata["progressPercentage"] = nav(progress_renderer, ["playbackProgressPercentage"])
     metadata["saved"] = nav(header, ["buttons", 0, *TOGGLED_BUTTON], True) or False
 
@@ -100,12 +103,8 @@ def parse_episode_header(header: dict) -> dict:
 def parse_episode(data):
     """Parses a single episode under "Episodes" on a channel page or on a podcast page"""
     thumbnails = nav(data, THUMBNAILS)
-    date = None
-    if len(nav(data, SUBTITLE_RUNS)) == 1:
-        duration = nav(data, SUBTITLE)
-    else:
-        date = nav(data, SUBTITLE)
-        duration = nav(data, SUBTITLE2, True)
+    date = nav(data, SUBTITLE, True)
+    duration = nav(data, ["playbackProgress", *PROGRESS_RENDERER, *DURATION_TEXT], True)
     title = nav(data, TITLE_TEXT)
     description = nav(data, DESCRIPTION, True)
     videoId = nav(data, ["onTap", *WATCH_VIDEO_ID], True)


Test patch:
diff --git a/tests/data/2024_07_get_playlist_collaborative.json b/tests/data/2024_07_get_playlist_collaborative.json
new file mode 100644
index 0000000..1b9eff1
--- /dev/null
+++ b/tests/data/2024_07_get_playlist_collaborative.json
@@ -0,0 +1,1 @@
+{"responseContext":{"serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"has_unlimited_entitlement","value":"True"},{"key":"browse_id","value":"VLPLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"},{"key":"browse_id_prefix","value":""},{"key":"logged_in","value":"1"},{"key":"e","value":"23804281,23946420,23966208,23998056,24004644,24077241,24181174,24208765,24241378,24290971,24439361,24456089,24468724,24542367,24543669,24548629,24566687,24690006,39326848,39326916,51009781,51010235,51016856,51017346,51020570,51025415,51030101,51037342,51037349,51041512,51043775,51050361,51053689,51057846,51057855,51060353,51063643,51064835,51065188,51089007,51091331,51098297,51098299,51101170,51102409,51105628,51107657,51111738,51113658,51113661,51115184,51116067,51116069,51118932,51120721,51124104,51133103,51139379,51144926,51145219,51147415,51148688,51149607,51152050,51157411,51157841,51158514,51159756,51160545,51160813,51162170,51163641,51165467,51165568,51169118,51170247,51172670,51172686,51172693,51172700,51172709,51172712,51172719,51172730,51173508,51176511,51176608,51177013,51177818,51178297,51178312,51178327,51178346,51178357,51178706,51178982,51183909,51184022,51185142,51186494,51186528,51189826,51190057,51190071,51190078,51190085,51190198,51190211,51190220,51190231,51190652,51195231,51197687,51197690,51197697,51197706,51199193,51200184,51200251,51200260,51200291,51200298,51200569,51201350,51201365,51201372,51201381,51201426,51201437,51201440,51201449,51201814,51202232,51204329,51204586,51207180,51207185,51207200,51207215,51208302,51208358,51211864,51212464,51212545,51212553,51212569,51212853,51213807,51217273,51217504,51218321,51219800,51221011,51221146,51221202,51222973,51223962,51224134,51224747,51224921,51225437,51226344,51226860,51227772,51227880,51227943,51228202,51228349,51228351,51228767,51228778,51228783,51228796,51228803,51228812,51230477,51230492,51230702,51231814,51231864,51231866,51232709,51233266,51234053,51235078,51235149,51235402,51236017,51238198,51238400,51238569,51238736,51240880,51240888,51241028,51241600,51241645,51241912,51242268,51242447,51243940,51246285,51246303"}]},{"service":"CSI","params":[{"key":"c","value":"WEB_REMIX"},{"key":"cver","value":"1.20240717.01.00"},{"key":"yt_li","value":"1"},{"key":"GetBrowsePlaylistDetailPage_rid","value":"0xee5df934b7d09bf6"}]},{"service":"ECATCHER","params":[{"key":"client.version","value":"1.20000101"},{"key":"client.name","value":"WEB_REMIX"}]}]},"contents":{"twoColumnBrowseResultsRenderer":{"secondaryContents":{"sectionListRenderer":{"contents":[{"musicPlaylistShelfRenderer":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","contents":[{"musicResponsiveListItemRenderer":{"trackingParams":"CEAQyfQCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","thumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://lh3.googleusercontent.com/GNCBPD0NqwQ_IX-49fcQJI7RSeoVKlmLU3C1aLhWDIN3i9HuQTQKryK--0ruP6xrDl0YLHEP6Ja7hJ8=w60-h60-l90-rj","width":60,"height":60},{"url":"https://lh3.googleusercontent.com/GNCBPD0NqwQ_IX-49fcQJI7RSeoVKlmLU3C1aLhWDIN3i9HuQTQKryK--0ruP6xrDl0YLHEP6Ja7hJ8=w120-h120-l90-rj","width":120,"height":120}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_ASPECT_FIT","trackingParams":"CFAQhL8CIhMIh4747be1hwMVr8dCBR226Acs"}},"overlay":{"musicItemThumbnailOverlayRenderer":{"background":{"verticalGradient":{"gradientLayerColors":["3422552064","3422552064"]}},"content":{"musicPlayButtonRenderer":{"playNavigationEndpoint":{"clickTrackingParams":"CE8QyN4CIhMIh4747be1hwMVr8dCBR226Acs","watchEndpoint":{"videoId":"_E6CVpvbQ7w","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUBygYQNTZCNDRGNkQxMDU1N0NDNg%3D%3D","playlistSetVideoId":"56B44F6D10557CC6","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_ATV"}}}},"trackingParams":"CE8QyN4CIhMIh4747be1hwMVr8dCBR226Acs","playIcon":{"iconType":"PLAY_ARROW"},"pauseIcon":{"iconType":"PAUSE"},"iconColor":4294967295,"backgroundColor":0,"activeBackgroundColor":0,"loadingIndicatorColor":4294901760,"playingIcon":{"iconType":"VOLUME_UP"},"iconLoadingColor":0,"activeScaleFactor":1,"buttonSize":"MUSIC_PLAY_BUTTON_SIZE_SMALL","rippleTarget":"MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF","accessibilityPlayData":{"accessibilityData":{"label":"Play BIG UP - INJI - 2 minutes, 41 seconds"}},"accessibilityPauseData":{"accessibilityData":{"label":"Pause BIG UP - INJI - 2 minutes, 41 seconds"}}}},"contentPosition":"MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED","displayStyle":"MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT"}},"flexColumns":[{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"BIG UP","navigationEndpoint":{"clickTrackingParams":"CEAQyfQCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"_E6CVpvbQ7w","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_ATV"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"USER_CHANNEL","navigationEndpoint":{"clickTrackingParams":"CEAQyfQCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UCKbBYXrDDp2oCDbWkq1bCTQ","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"INJI","navigationEndpoint":{"clickTrackingParams":"CEAQyfQCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UC9P_5U0pD3zThQ32BvBwG4w","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ARTIST"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"BIG UP","navigationEndpoint":{"clickTrackingParams":"CEAQyfQCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"MPREb_7PyU7ynqIHw","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ALBUM"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_MEDIUM"}}],"fixedColumns":[{"musicResponsiveListItemFixedColumnRenderer":{"text":{"runs":[{"text":"2:41"}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH","size":"MUSIC_RESPONSIVE_LIST_ITEM_FIXED_COLUMN_SIZE_SMALL"}}],"menu":{"menuRenderer":{"items":[{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Start radio"}]},"icon":{"iconType":"MIX"},"navigationEndpoint":{"clickTrackingParams":"CE4Qm_MFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"_E6CVpvbQ7w","playlistId":"RDAMVM_E6CVpvbQ7w","params":"wAEB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GhFSREFNVk1fRTZDVnB2YlE3dw%3D%3D"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_ATV"}}}},"trackingParams":"CE4Qm_MFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Play next"}]},"icon":{"iconType":"QUEUE_PLAY_NEXT"},"serviceEndpoint":{"clickTrackingParams":"CEwQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"_E6CVpvbQ7w","onEmptyQueue":{"clickTrackingParams":"CEwQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"_E6CVpvbQ7w"}}},"queueInsertPosition":"INSERT_AFTER_CURRENT_VIDEO","commands":[{"clickTrackingParams":"CEwQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song will play next"}]},"trackingParams":"CE0QyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CEwQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_REMOTE_QUEUE"},"serviceEndpoint":{"clickTrackingParams":"CEoQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"_E6CVpvbQ7w","onEmptyQueue":{"clickTrackingParams":"CEoQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"_E6CVpvbQ7w"}}},"queueInsertPosition":"INSERT_AT_END","commands":[{"clickTrackingParams":"CEoQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song added to queue"}]},"trackingParams":"CEsQyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CEoQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"toggleMenuServiceItemRenderer":{"defaultText":{"runs":[{"text":"Remove from library"}]},"defaultIcon":{"iconType":"LIBRARY_SAVED"},"defaultServiceEndpoint":{"clickTrackingParams":"CEkQhP8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","feedbackEndpoint":{"feedbackToken":"AB9zfpItcMUD_X69OuDZa7LwQCrdwMYoa2WhcbYedHt-tvVWoHi2xglUEEzYeWMHKllV2tBBWFnBvMBeX5jRW3sOjxqYHRJzLQ"}},"toggledText":{"runs":[{"text":"Save to library"}]},"toggledIcon":{"iconType":"LIBRARY_ADD"},"toggledServiceEndpoint":{"clickTrackingParams":"CEkQhP8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","feedbackEndpoint":{"feedbackToken":"AB9zfpLIqauwlPG7N8H5DaCf5Mq3kqlfmKJi85fFfCecqQzGqjfxfWhuura9Sg6a9k3_D2XUpzdX0D7hRDvp-EvnMWqHOAbrfw"}},"trackingParams":"CEkQhP8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemDownloadRenderer":{"serviceEndpoint":{"clickTrackingParams":"CEgQ0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw=","offlineVideoEndpoint":{"videoId":"_E6CVpvbQ7w","onAddCommand":{"clickTrackingParams":"CEgQ0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw=","getDownloadActionCommand":{"videoId":"_E6CVpvbQ7w","params":"CAI%3D"}}}},"trackingParams":"CEgQ0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"ADD_TO_PLAYLIST"},"navigationEndpoint":{"clickTrackingParams":"CEcQw5QGGAUiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToPlaylistEndpoint":{"videoId":"_E6CVpvbQ7w"}},"trackingParams":"CEcQw5QGGAUiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Remove from playlist"}]},"icon":{"iconType":"REMOVE_FROM_PLAYLIST"},"serviceEndpoint":{"clickTrackingParams":"CEIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","playlistEditEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","actions":[{"setVideoId":"56B44F6D10557CC6","action":"ACTION_REMOVE_VIDEO","removedVideoId":"_E6CVpvbQ7w"}]}},"trackingParams":"CEIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Go to album"}]},"icon":{"iconType":"ALBUM"},"navigationEndpoint":{"clickTrackingParams":"CEYQj_sFGAciEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"MPREb_7PyU7ynqIHw","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ALBUM"}}}},"trackingParams":"CEYQj_sFGAciEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Go to artist"}]},"icon":{"iconType":"ARTIST"},"navigationEndpoint":{"clickTrackingParams":"CEUQkPsFGAgiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UC9P_5U0pD3zThQ32BvBwG4w","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ARTIST"}}}},"trackingParams":"CEUQkPsFGAgiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"navigationEndpoint":{"clickTrackingParams":"CEQQkfsFGAkiEwiHjvjtt7WHAxWvx0IFHbboByw=","shareEntityEndpoint":{"serializedShareEntity":"CgtfRTZDVnB2YlE3dw%3D%3D","sharePanelType":"SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL"}},"trackingParams":"CEQQkfsFGAkiEwiHjvjtt7WHAxWvx0IFHbboByw="}}],"trackingParams":"CEIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","topLevelButtons":[{"likeButtonRenderer":{"target":{"videoId":"_E6CVpvbQ7w"},"likeStatus":"INDIFFERENT","trackingParams":"CEMQpUEYCiITCIeO-O23tYcDFa_HQgUdtugHLA==","likesAllowed":true,"serviceEndpoints":[{"clickTrackingParams":"CEMQpUEYCiITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"LIKE","target":{"videoId":"_E6CVpvbQ7w"},"actions":[{"clickTrackingParams":"CEMQpUEYCiITCIeO-O23tYcDFa_HQgUdtugHLA==","musicLibraryStatusUpdateCommand":{"libraryStatus":"MUSIC_LIBRARY_STATUS_IN_LIBRARY","addToLibraryFeedbackToken":"AB9zfpLIqauwlPG7N8H5DaCf5Mq3kqlfmKJi85fFfCecqQzGqjfxfWhuura9Sg6a9k3_D2XUpzdX0D7hRDvp-EvnMWqHOAbrfw"}}]}},{"clickTrackingParams":"CEMQpUEYCiITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"DISLIKE","target":{"videoId":"_E6CVpvbQ7w"}}},{"clickTrackingParams":"CEMQpUEYCiITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"INDIFFERENT","target":{"videoId":"_E6CVpvbQ7w"}}}]}}],"accessibility":{"accessibilityData":{"label":"Action menu"}}}},"playlistItemData":{"playlistSetVideoId":"56B44F6D10557CC6","videoId":"_E6CVpvbQ7w"},"multiSelectCheckbox":{"checkboxRenderer":{"onSelectionChangeCommand":{"clickTrackingParams":"CEEQvr4JIhMIh4747be1hwMVr8dCBR226Acs","updateMultiSelectStateCommand":{"multiSelectParams":"CAESIlBMRVVpanRMZnBDT2dJOExOT3dpd3ZxMEVKOEhBR2o3ZFQ=","multiSelectItem":"Ch8KC19FNkNWcHZiUTd3EhA1NkI0NEY2RDEwNTU3Q0M2"}},"checkedState":"CHECKBOX_CHECKED_STATE_UNCHECKED","trackingParams":"CEEQvr4JIhMIh4747be1hwMVr8dCBR226Acs"}}}},{"musicResponsiveListItemRenderer":{"trackingParams":"CDIQyfQCGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","thumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/JXjuDwBKZ6g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kWGK675mblmKOt7De-IOU10qzhxw","width":400,"height":225}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_ASPECT_FIT","trackingParams":"CD8QhL8CIhMIh4747be1hwMVr8dCBR226Acs"}},"overlay":{"musicItemThumbnailOverlayRenderer":{"background":{"verticalGradient":{"gradientLayerColors":["3422552064","3422552064"]}},"content":{"musicPlayButtonRenderer":{"playNavigationEndpoint":{"clickTrackingParams":"CD4QyN4CIhMIh4747be1hwMVr8dCBR226Acs","watchEndpoint":{"videoId":"JXjuDwBKZ6g","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUBygYQMjg5RjRBNDZERjBBMzBEMg%3D%3D","playlistSetVideoId":"289F4A46DF0A30D2","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_UGC"}}}},"trackingParams":"CD4QyN4CIhMIh4747be1hwMVr8dCBR226Acs","playIcon":{"iconType":"PLAY_ARROW"},"pauseIcon":{"iconType":"PAUSE"},"iconColor":4294967295,"backgroundColor":0,"activeBackgroundColor":0,"loadingIndicatorColor":4294901760,"playingIcon":{"iconType":"VOLUME_UP"},"iconLoadingColor":0,"activeScaleFactor":1,"buttonSize":"MUSIC_PLAY_BUTTON_SIZE_SMALL","rippleTarget":"MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF","accessibilityPlayData":{"accessibilityData":{"label":"Play Sono Chi No Sadame / Eurobeat remix - Turbo - 3 minutes, 47 seconds"}},"accessibilityPauseData":{"accessibilityData":{"label":"Pause Sono Chi No Sadame / Eurobeat remix - Turbo - 3 minutes, 47 seconds"}}}},"contentPosition":"MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED","displayStyle":"MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT"}},"flexColumns":[{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"Sono Chi No Sadame / Eurobeat remix","navigationEndpoint":{"clickTrackingParams":"CDIQyfQCGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"JXjuDwBKZ6g","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_UGC"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"LL","navigationEndpoint":{"clickTrackingParams":"CDIQyfQCGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UCKbBYXrDDp2oCDbWkq1bCTQ","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"Turbo","navigationEndpoint":{"clickTrackingParams":"CDIQyfQCGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UCus8EVJ7Oc9zINhs-fg8l1Q","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_MEDIUM"}}],"fixedColumns":[{"musicResponsiveListItemFixedColumnRenderer":{"text":{"runs":[{"text":"3:47"}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH","size":"MUSIC_RESPONSIVE_LIST_ITEM_FIXED_COLUMN_SIZE_SMALL"}}],"menu":{"menuRenderer":{"items":[{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Start radio"}]},"icon":{"iconType":"MIX"},"navigationEndpoint":{"clickTrackingParams":"CD0Qm_MFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"JXjuDwBKZ6g","playlistId":"RDAMVMJXjuDwBKZ6g","params":"wAEB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GhFSREFNVk1KWGp1RHdCS1o2Zw%3D%3D"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_UGC"}}}},"trackingParams":"CD0Qm_MFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Play next"}]},"icon":{"iconType":"QUEUE_PLAY_NEXT"},"serviceEndpoint":{"clickTrackingParams":"CDsQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"JXjuDwBKZ6g","onEmptyQueue":{"clickTrackingParams":"CDsQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"JXjuDwBKZ6g"}}},"queueInsertPosition":"INSERT_AFTER_CURRENT_VIDEO","commands":[{"clickTrackingParams":"CDsQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song will play next"}]},"trackingParams":"CDwQyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CDsQvu4FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_REMOTE_QUEUE"},"serviceEndpoint":{"clickTrackingParams":"CDkQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"JXjuDwBKZ6g","onEmptyQueue":{"clickTrackingParams":"CDkQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"JXjuDwBKZ6g"}}},"queueInsertPosition":"INSERT_AT_END","commands":[{"clickTrackingParams":"CDkQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song added to queue"}]},"trackingParams":"CDoQyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CDkQ--8FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemDownloadRenderer":{"serviceEndpoint":{"clickTrackingParams":"CDgQ0aoFGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","offlineVideoEndpoint":{"videoId":"JXjuDwBKZ6g","onAddCommand":{"clickTrackingParams":"CDgQ0aoFGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","getDownloadActionCommand":{"videoId":"JXjuDwBKZ6g","params":"CAI%3D"}}}},"trackingParams":"CDgQ0aoFGAMiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"ADD_TO_PLAYLIST"},"navigationEndpoint":{"clickTrackingParams":"CDcQw5QGGAQiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToPlaylistEndpoint":{"videoId":"JXjuDwBKZ6g"}},"trackingParams":"CDcQw5QGGAQiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Remove from playlist"}]},"icon":{"iconType":"REMOVE_FROM_PLAYLIST"},"serviceEndpoint":{"clickTrackingParams":"CDQQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","playlistEditEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","actions":[{"setVideoId":"289F4A46DF0A30D2","action":"ACTION_REMOVE_VIDEO","removedVideoId":"JXjuDwBKZ6g"}]}},"trackingParams":"CDQQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"navigationEndpoint":{"clickTrackingParams":"CDYQkfsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw=","shareEntityEndpoint":{"serializedShareEntity":"CgtKWGp1RHdCS1o2Zw%3D%3D","sharePanelType":"SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL"}},"trackingParams":"CDYQkfsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw="}}],"trackingParams":"CDQQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","topLevelButtons":[{"likeButtonRenderer":{"target":{"videoId":"JXjuDwBKZ6g"},"likeStatus":"INDIFFERENT","trackingParams":"CDUQpUEYByITCIeO-O23tYcDFa_HQgUdtugHLA==","likesAllowed":true,"serviceEndpoints":[{"clickTrackingParams":"CDUQpUEYByITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"LIKE","target":{"videoId":"JXjuDwBKZ6g"}}},{"clickTrackingParams":"CDUQpUEYByITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"DISLIKE","target":{"videoId":"JXjuDwBKZ6g"}}},{"clickTrackingParams":"CDUQpUEYByITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"INDIFFERENT","target":{"videoId":"JXjuDwBKZ6g"}}}]}}],"accessibility":{"accessibilityData":{"label":"Action menu"}}}},"playlistItemData":{"playlistSetVideoId":"289F4A46DF0A30D2","videoId":"JXjuDwBKZ6g"},"multiSelectCheckbox":{"checkboxRenderer":{"onSelectionChangeCommand":{"clickTrackingParams":"CDMQvr4JIhMIh4747be1hwMVr8dCBR226Acs","updateMultiSelectStateCommand":{"multiSelectParams":"CAESIlBMRVVpanRMZnBDT2dJOExOT3dpd3ZxMEVKOEhBR2o3ZFQ=","multiSelectItem":"Ch8KC0pYanVEd0JLWjZnEhAyODlGNEE0NkRGMEEzMEQy"}},"checkedState":"CHECKBOX_CHECKED_STATE_UNCHECKED","trackingParams":"CDMQvr4JIhMIh4747be1hwMVr8dCBR226Acs"}}}},{"musicResponsiveListItemRenderer":{"trackingParams":"CCAQyfQCGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","thumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://i9.ytimg.com/vi_locker/G1qnkunyswc/locker.png?sqp=-oaymwEGCDwQPCAA&rs=AMzJL3kBC1Ap53T5KzQXU5Pob8ddaWatEQ","width":60,"height":60},{"url":"https://i9.ytimg.com/vi_locker/G1qnkunyswc/locker.png?sqp=-oaymwEGCHgQeCAA&rs=AMzJL3lhDrsbYM2kfO7F2XrC9s0UjNU2Bg","width":120,"height":120}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_ASPECT_FIT","trackingParams":"CDEQhL8CIhMIh4747be1hwMVr8dCBR226Acs"}},"overlay":{"musicItemThumbnailOverlayRenderer":{"background":{"verticalGradient":{"gradientLayerColors":["3422552064","3422552064"]}},"content":{"musicPlayButtonRenderer":{"playNavigationEndpoint":{"clickTrackingParams":"CDAQyN4CIhMIh4747be1hwMVr8dCBR226Acs","watchEndpoint":{"videoId":"G1qnkunyswc","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUBygYQNTIxNTJCNDk0NkMyRjczRg%3D%3D","playlistSetVideoId":"52152B4946C2F73F","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_PRIVATELY_OWNED_TRACK"}}}},"trackingParams":"CDAQyN4CIhMIh4747be1hwMVr8dCBR226Acs","playIcon":{"iconType":"PLAY_ARROW"},"pauseIcon":{"iconType":"PAUSE"},"iconColor":4294967295,"backgroundColor":0,"activeBackgroundColor":0,"loadingIndicatorColor":4294901760,"playingIcon":{"iconType":"VOLUME_UP"},"iconLoadingColor":0,"activeScaleFactor":1,"buttonSize":"MUSIC_PLAY_BUTTON_SIZE_SMALL","rippleTarget":"MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF","accessibilityPlayData":{"accessibilityData":{"label":"Play the lost dedicated - yst - 2 minutes, 13 seconds"}},"accessibilityPauseData":{"accessibilityData":{"label":"Pause the lost dedicated - yst - 2 minutes, 13 seconds"}}}},"contentPosition":"MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED","displayStyle":"MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT"}},"flexColumns":[{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"the lost dedicated","navigationEndpoint":{"clickTrackingParams":"CCAQyfQCGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"G1qnkunyswc","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","playerParams":"gAQBiAQB8AUB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_PRIVATELY_OWNED_TRACK"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"USER_CHANNEL","navigationEndpoint":{"clickTrackingParams":"CCAQyfQCGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UCKbBYXrDDp2oCDbWkq1bCTQ","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"yst","navigationEndpoint":{"clickTrackingParams":"CCAQyfQCGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"FEmusic_library_privately_owned_artist_detaila_po_CMqrtu3O1urtvAESA3lzdA","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_UNKNOWN"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"the lost dedicated","navigationEndpoint":{"clickTrackingParams":"CCAQyfQCGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"FEmusic_library_privately_owned_release_detailb_po_CMqrtu3O1urtvAESDmxvc3QgZGVkaWNhdGVkGgN5c3QiDWh0dHAgdXBsb2FkZXI","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ALBUM"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_MEDIUM"}}],"fixedColumns":[{"musicResponsiveListItemFixedColumnRenderer":{"text":{"runs":[{"text":"2:13"}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH","size":"MUSIC_RESPONSIVE_LIST_ITEM_FIXED_COLUMN_SIZE_SMALL"}}],"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Play next"}]},"icon":{"iconType":"QUEUE_PLAY_NEXT"},"serviceEndpoint":{"clickTrackingParams":"CC4Qvu4FGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"G1qnkunyswc","onEmptyQueue":{"clickTrackingParams":"CC4Qvu4FGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"G1qnkunyswc"}}},"queueInsertPosition":"INSERT_AFTER_CURRENT_VIDEO","commands":[{"clickTrackingParams":"CC4Qvu4FGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song will play next"}]},"trackingParams":"CC8QyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CC4Qvu4FGAAiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_REMOTE_QUEUE"},"serviceEndpoint":{"clickTrackingParams":"CCwQ--8FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"videoId":"G1qnkunyswc","onEmptyQueue":{"clickTrackingParams":"CCwQ--8FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"G1qnkunyswc"}}},"queueInsertPosition":"INSERT_AT_END","commands":[{"clickTrackingParams":"CCwQ--8FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Song added to queue"}]},"trackingParams":"CC0QyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CCwQ--8FGAEiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemDownloadRenderer":{"serviceEndpoint":{"clickTrackingParams":"CCsQ0aoFGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","offlineVideoEndpoint":{"videoId":"G1qnkunyswc","onAddCommand":{"clickTrackingParams":"CCsQ0aoFGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","getDownloadActionCommand":{"videoId":"G1qnkunyswc","params":"CAI%3D"}}}},"trackingParams":"CCsQ0aoFGAIiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"ADD_TO_PLAYLIST"},"navigationEndpoint":{"clickTrackingParams":"CCoQw5QGGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToPlaylistEndpoint":{"videoId":"G1qnkunyswc"}},"trackingParams":"CCoQw5QGGAMiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Remove from playlist"}]},"icon":{"iconType":"REMOVE_FROM_PLAYLIST"},"serviceEndpoint":{"clickTrackingParams":"CCIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","playlistEditEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","actions":[{"setVideoId":"52152B4946C2F73F","action":"ACTION_REMOVE_VIDEO","removedVideoId":"G1qnkunyswc"}]}},"trackingParams":"CCIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Go to album"}]},"icon":{"iconType":"ALBUM"},"navigationEndpoint":{"clickTrackingParams":"CCkQj_sFGAUiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"FEmusic_library_privately_owned_release_detailb_po_CMqrtu3O1urtvAESDmxvc3QgZGVkaWNhdGVkGgN5c3QiDWh0dHAgdXBsb2FkZXI","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ALBUM"}}}},"trackingParams":"CCkQj_sFGAUiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Go to artist"}]},"icon":{"iconType":"ARTIST"},"navigationEndpoint":{"clickTrackingParams":"CCgQkPsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"FEmusic_library_privately_owned_artist_detaila_po_CMqrtu3O1urtvAESA3lzdA","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ARTIST"}}}},"trackingParams":"CCgQkPsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Delete song"}]},"icon":{"iconType":"DELETE"},"navigationEndpoint":{"clickTrackingParams":"CCQQ__4FGAciEwiHjvjtt7WHAxWvx0IFHbboByw=","confirmDialogEndpoint":{"content":{"confirmDialogRenderer":{"title":{"runs":[{"text":"Delete song?"}]},"trackingParams":"CCUQxjgiEwiHjvjtt7WHAxWvx0IFHbboByw=","dialogMessages":[{"runs":[{"text":"\"the lost dedicated\" will no longer show in your library. This can't be undone."}]}],"confirmButton":{"buttonRenderer":{"style":"STYLE_LIGHT_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Delete"}]},"trackingParams":"CCcQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw=","command":{"clickTrackingParams":"CCcQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw=","musicDeletePrivatelyOwnedEntityCommand":{"entityId":"t_po_CMqrtu3O1urtvAEQyJb15fj_____AQ"}}}},"cancelButton":{"buttonRenderer":{"style":"STYLE_LIGHT_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Cancel"}]},"trackingParams":"CCYQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw="}}}}}},"trackingParams":"CCQQ__4FGAciEwiHjvjtt7WHAxWvx0IFHbboByw="}}],"trackingParams":"CCIQpzsiEwiHjvjtt7WHAxWvx0IFHbboByw=","topLevelButtons":[{"likeButtonRenderer":{"target":{"videoId":"G1qnkunyswc"},"likeStatus":"INDIFFERENT","trackingParams":"CCMQpUEYCCITCIeO-O23tYcDFa_HQgUdtugHLA==","likesAllowed":true,"serviceEndpoints":[{"clickTrackingParams":"CCMQpUEYCCITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"LIKE","target":{"videoId":"G1qnkunyswc"}}},{"clickTrackingParams":"CCMQpUEYCCITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"DISLIKE","target":{"videoId":"G1qnkunyswc"}}},{"clickTrackingParams":"CCMQpUEYCCITCIeO-O23tYcDFa_HQgUdtugHLA==","likeEndpoint":{"status":"INDIFFERENT","target":{"videoId":"G1qnkunyswc"}}}]}}],"accessibility":{"accessibilityData":{"label":"Action menu"}}}},"playlistItemData":{"playlistSetVideoId":"52152B4946C2F73F","videoId":"G1qnkunyswc"},"multiSelectCheckbox":{"checkboxRenderer":{"onSelectionChangeCommand":{"clickTrackingParams":"CCEQvr4JIhMIh4747be1hwMVr8dCBR226Acs","updateMultiSelectStateCommand":{"multiSelectParams":"CAESIlBMRVVpanRMZnBDT2dJOExOT3dpd3ZxMEVKOEhBR2o3ZFQ=","multiSelectItem":"Ch8KC0cxcW5rdW55c3djEhA1MjE1MkI0OTQ2QzJGNzNG"}},"checkedState":"CHECKBOX_CHECKED_STATE_UNCHECKED","trackingParams":"CCEQvr4JIhMIh4747be1hwMVr8dCBR226Acs"}}}},{"musicResponsiveListItemRenderer":{"trackingParams":"CKwGEMn0AhgEIhMIorOMoai2hwMVT-NCBR3OQgev","thumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/bSAlE_WgHxY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nyvyq_o4DzAds4K5E5lFtH7Tynyg","width":400,"height":225}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_ASPECT_FIT","trackingParams":"CLsGEIS_AiITCKKzjKGotocDFU_jQgUdzkIHrw=="}},"overlay":{"musicItemThumbnailOverlayRenderer":{"background":{"verticalGradient":{"gradientLayerColors":["3422552064","3422552064"]}},"content":{"musicPlayButtonRenderer":{"playNavigationEndpoint":{"clickTrackingParams":"CLoGEMjeAiITCKKzjKGotocDFU_jQgUdzkIHrw==","watchEndpoint":{"videoId":"bSAlE_WgHxY","playlistId":"RDCLAK5uy_kwmNQ6C3BXrVOcih6fGljxeeekGrzjTtE","params":"8gEFGAOYAQg%3D","playlistSetVideoId":"090796A75D153932","loggingContext":{"vssLoggingContext":{"serializedContextData":"GitSRENMQUs1dXlfa3dtTlE2QzNCWHJWT2NpaDZmR2xqeGVlZWtHcnpqVHRF"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_PODCAST_EPISODE"}}}},"trackingParams":"CLoGEMjeAiITCKKzjKGotocDFU_jQgUdzkIHrw==","playIcon":{"iconType":"PLAY_ARROW"},"pauseIcon":{"iconType":"PAUSE"},"iconColor":4294967295,"backgroundColor":0,"activeBackgroundColor":0,"loadingIndicatorColor":14745645,"playingIcon":{"iconType":"VOLUME_UP"},"iconLoadingColor":0,"activeScaleFactor":1,"buttonSize":"MUSIC_PLAY_BUTTON_SIZE_SMALL","rippleTarget":"MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF","accessibilityPlayData":{"accessibilityData":{"label":"Play Rangisari (From \"Jugjugg Jeeyo\") - Kanishk Seth - 3 minutes, 23 seconds"}},"accessibilityPauseData":{"accessibilityData":{"label":"Pause Rangisari (From \"Jugjugg Jeeyo\") - Kanishk Seth - 3 minutes, 23 seconds"}}}},"contentPosition":"MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED","displayStyle":"MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT"}},"flexColumns":[{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"Rangisari (From \"Jugjugg Jeeyo\")","navigationEndpoint":{"clickTrackingParams":"CKwGEMn0AhgEIhMIorOMoai2hwMVT-NCBR3OQgev","browseEndpoint":{"browseId":"MPEDbSAlE_WgHxY","params":"ggMwmgEtCitSRENMQUs1dXlfa3dtTlE2QzNCWHJWT2NpaDZmR2xqeGVlZWtHcnpqVHRF","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_NON_MUSIC_AUDIO_TRACK_PAGE"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"USER_CHANNEL","navigationEndpoint":{"clickTrackingParams":"CDIQyfQCGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","browseEndpoint":{"browseId":"UCKbBYXrDDp2oCDbWkq1bCTQ","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"Kanishk Seth","navigationEndpoint":{"clickTrackingParams":"CKwGEMn0AhgEIhMIorOMoai2hwMVT-NCBR3OQgev","browseEndpoint":{"browseId":"UC0PQFdpMlhl5TFYaUFy64yw","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ARTIST"}}}}}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH"}},{"musicResponsiveListItemFlexColumnRenderer":{"text":{"runs":[{"text":"Jun 5, 2022"}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_MEDIUM"}}],"fixedColumns":[{"musicResponsiveListItemFixedColumnRenderer":{"text":{"runs":[{"text":"3:23"}]},"displayPriority":"MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH","size":"MUSIC_RESPONSIVE_LIST_ITEM_FIXED_COLUMN_SIZE_SMALL"}}],"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Play next"}]},"icon":{"iconType":"QUEUE_PLAY_NEXT"},"serviceEndpoint":{"clickTrackingParams":"CLgGEL7uBRgAIhMIorOMoai2hwMVT-NCBR3OQgev","queueAddEndpoint":{"queueTarget":{"videoId":"bSAlE_WgHxY","onEmptyQueue":{"clickTrackingParams":"CLgGEL7uBRgAIhMIorOMoai2hwMVT-NCBR3OQgev","watchEndpoint":{"videoId":"bSAlE_WgHxY"}},"queueInsertPosition":"INSERT_AFTER_CURRENT_VIDEO","commands":[{"clickTrackingParams":"CLgGEL7uBRgAIhMIorOMoai2hwMVT-NCBR3OQgev","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Episode will play next"}]},"trackingParams":"CLkGEMrHAyITCKKzjKGotocDFU_jQgUdzkIHrw=="}}}}]},"trackingParams":"CLgGEL7uBRgAIhMIorOMoai2hwMVT-NCBR3OQgev"}}}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_REMOTE_QUEUE"},"serviceEndpoint":{"clickTrackingParams":"CLYGEPvvBRgBIhMIorOMoai2hwMVT-NCBR3OQgev","queueAddEndpoint":{"queueTarget":{"videoId":"bSAlE_WgHxY","onEmptyQueue":{"clickTrackingParams":"CLYGEPvvBRgBIhMIorOMoai2hwMVT-NCBR3OQgev","watchEndpoint":{"videoId":"bSAlE_WgHxY"}},"queueInsertPosition":"INSERT_AT_END","commands":[{"clickTrackingParams":"CLYGEPvvBRgBIhMIorOMoai2hwMVT-NCBR3OQgev","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Episode added to queue"}]},"trackingParams":"CLcGEMrHAyITCKKzjKGotocDFU_jQgUdzkIHrw=="}}}}]},"trackingParams":"CLYGEPvvBRgBIhMIorOMoai2hwMVT-NCBR3OQgev"}}}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"ADD_TO_PLAYLIST"},"navigationEndpoint":{"clickTrackingParams":"CLQGEMOUBhgCIhMIorOMoai2hwMVT-NCBR3OQgev","modalEndpoint":{"modal":{"modalWithTitleAndButtonRenderer":{"title":{"runs":[{"text":"Save this for later"}]},"content":{"runs":[{"text":"Make playlists and share them after signing in"}]},"button":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","isDisabled":false,"text":{"runs":[{"text":"Sign in"}]},"navigationEndpoint":{"clickTrackingParams":"CLUGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev","signInEndpoint":{"hack":true}},"trackingParams":"CLUGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev"}}}}},"trackingParams":"CLQGEMOUBhgCIhMIorOMoai2hwMVT-NCBR3OQgev"}}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Go to artist"}]},"icon":{"iconType":"ARTIST"},"navigationEndpoint":{"clickTrackingParams":"CLMGEJD7BRgDIhMIorOMoai2hwMVT-NCBR3OQgev","browseEndpoint":{"browseId":"UC0PQFdpMlhl5TFYaUFy64yw","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_ARTIST"}}},"trackingParams":"CLMGEJD7BRgDIhMIorOMoai2hwMVT-NCBR3OQgev"}}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"navigationEndpoint":{"clickTrackingParams":"CLIGEJH7BRgEIhMIorOMoai2hwMVT-NCBR3OQgev","shareEntityEndpoint":{"serializedShareEntity":"CgtiU0FsRV9XZ0h4WQ%3D%3D","sharePanelType":"SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL"},"trackingParams":"CLIGEJH7BRgEIhMIorOMoai2hwMVT-NCBR3OQgev"}}}],"trackingParams":"CK4GEKc7IhMIorOMoai2hwMVT-NCBR3OQgev","topLevelButtons":[{"likeButtonRenderer":{"target":{"videoId":"bSAlE_WgHxY"},"likeStatus":"INDIFFERENT","trackingParams":"CK8GEKVBGAUiEwiis4yhqLaHAxVP40IFHc5CB68=","likesAllowed":true,"dislikeNavigationEndpoint":{"clickTrackingParams":"CK8GEKVBGAUiEwiis4yhqLaHAxVP40IFHc5CB68=","modalEndpoint":{"modal":{"modalWithTitleAndButtonRenderer":{"title":{"runs":[{"text":"Not a fan?"}]},"content":{"runs":[{"text":"Improve your recommendations after signing in"}]},"button":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","isDisabled":false,"text":{"runs":[{"text":"Sign in"}]},"navigationEndpoint":{"clickTrackingParams":"CLEGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev","signInEndpoint":{"hack":true}},"trackingParams":"CLEGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev"}}}}}},"likeCommand":{"clickTrackingParams":"CK8GEKVBGAUiEwiis4yhqLaHAxVP40IFHc5CB68=","modalEndpoint":{"modal":{"modalWithTitleAndButtonRenderer":{"title":{"runs":[{"text":"Like this song"}]},"content":{"runs":[{"text":"Improve recommendations and save music after signing in"}]},"button":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","isDisabled":false,"text":{"runs":[{"text":"Sign in"}]},"navigationEndpoint":{"clickTrackingParams":"CLAGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev","signInEndpoint":{"hack":true}},"trackingParams":"CLAGEPBbIhMIorOMoai2hwMVT-NCBR3OQgev"}}}}}}}}],"accessibility":{"accessibilityData":{"label":"Action menu"}}}},"playlistItemData":{"playlistSetVideoId":"090796A75D153932","videoId":"bSAlE_WgHxY"},"multiSelectCheckbox":{"checkboxRenderer":{"onSelectionChangeCommand":{"clickTrackingParams":"CK0GEL6-CSITCKKzjKGotocDFU_jQgUdzkIHrw==","updateMultiSelectStateCommand":{"multiSelectParams":"CAISK1JEQ0xBSzV1eV9rd21OUTZDM0JYclZPY2loNmZHbGp4ZWVla0dyempUdEU=","multiSelectItem":"Ch8KC2JTQWxFX1dnSHhZEhAwOTA3OTZBNzVEMTUzOTMy"}},"checkedState":"CHECKBOX_CHECKED_STATE_UNCHECKED","trackingParams":"CK0GEL6-CSITCKKzjKGotocDFU_jQgUdzkIHrw=="}}}}],"collapsedItemCount":4,"trackingParams":"CB4Q9-MCGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","contentsReorderable":true,"emptyState":{"messageRenderer":{"trackingParams":"CB8QljsiEwiHjvjtt7WHAxWvx0IFHbboByw=","subtext":{"messageSubtextRenderer":{"text":{"runs":[{"text":"Nothing saved yet"}]}}},"style":{"value":"RENDER_STYLE_EMPTY_STATE"}}},"contentsMultiSelectable":true}}],"continuations":[{"nextContinuationData":{"continuation":"4qmFsgI8EiRWTFBMRVVpanRMZnBDT2dJOExOT3dpd3ZxMEVKOEhBR2o3ZFQaFGtnRURDT1VFOEFFRTJnY0RDTTBH","clickTrackingParams":"CB0QybcCIhMIh4747be1hwMVr8dCBR226Acs"}}],"trackingParams":"CBwQui8iEwiHjvjtt7WHAxWvx0IFHbboByw="}},"tabs":[{"tabRenderer":{"content":{"sectionListRenderer":{"contents":[{"musicEditablePlaylistDetailHeaderRenderer":{"header":{"musicResponsiveHeaderRenderer":{"thumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s192","width":192,"height":192},{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s576","width":576,"height":576},{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s1200","width":1200,"height":1200}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_UNSPECIFIED","trackingParams":"CBsQhL8CIhMIh4747be1hwMVr8dCBR226Acs"}},"buttons":[{"downloadButtonRenderer":{"trackingParams":"CBkQ0aoFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","style":"STYLE_DEFAULT","accessibilityData":{"accessibilityData":{"label":"Download"}},"targetId":"playlist-download-button","command":{"clickTrackingParams":"CBkQ0aoFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","offlinePlaylistEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","action":"ACTION_ADD","offlineability":{"offlineabilityRenderer":{"offlineable":true,"clickTrackingParams":"CBoQxzciEwiHjvjtt7WHAxWvx0IFHbboBywyC29mZmxpbmVsaXN0"}},"onAddCommand":{"clickTrackingParams":"CBkQ0aoFGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","getDownloadActionCommand":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","params":"CAI%3D"}}}}}},{"buttonRenderer":{"icon":{"iconType":"EDIT"},"navigationEndpoint":{"clickTrackingParams":"CBgQ8FsYASITCIeO-O23tYcDFa_HQgUdtugHLA==","playlistEditorEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}},"trackingParams":"CBgQ8FsYASITCIeO-O23tYcDFa_HQgUdtugHLA==","accessibilityData":{"accessibilityData":{"label":"Edit playlist"}},"targetId":"music-edit-playlist-button"}},{"musicPlayButtonRenderer":{"playNavigationEndpoint":{"clickTrackingParams":"CBcQyN4CGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"videoId":"_E6CVpvbQ7w","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","params":"wAEB","playerParams":"gAQBiAQB8AUB","loggingContext":{"vssLoggingContext":{"serializedContextData":"GiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU"}},"watchEndpointMusicSupportedConfigs":{"watchEndpointMusicConfig":{"musicVideoType":"MUSIC_VIDEO_TYPE_ATV"}}}},"trackingParams":"CBcQyN4CGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","playIcon":{"iconType":"PLAY_ARROW"},"pauseIcon":{"iconType":"PAUSE"},"iconColor":4294967295,"backgroundColor":0,"activeBackgroundColor":0,"loadingIndicatorColor":4294901760,"playingIcon":{"iconType":"PAUSE"},"iconLoadingColor":0,"activeScaleFactor":1,"accessibilityPlayData":{"accessibilityData":{"label":"Play Example_collaborative_playlist"}},"accessibilityPauseData":{"accessibilityData":{"label":"Pause Example_collaborative_playlist"}}}},{"buttonRenderer":{"style":"STYLE_DARK_ON_WHITE","icon":{"iconType":"SHARE"},"accessibility":{"label":"Share"},"trackingParams":"CBYQ5ZYBGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","accessibilityData":{"accessibilityData":{"label":"Share"}},"command":{"clickTrackingParams":"CBYQ5ZYBGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","shareEntityEndpoint":{"serializedShareEntity":"EiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU","sharePanelType":"SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL"}}}},{"menuRenderer":{"items":[{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Shuffle play"}]},"icon":{"iconType":"MUSIC_SHUFFLE"},"navigationEndpoint":{"clickTrackingParams":"CAgQpzsYBCITCIeO-O23tYcDFa_HQgUdtugHLA==","watchPlaylistEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","params":"wAEB8gECKAE%3D"}},"trackingParams":"CAgQpzsYBCITCIeO-O23tYcDFa_HQgUdtugHLA=="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Start radio"}]},"icon":{"iconType":"MIX"},"navigationEndpoint":{"clickTrackingParams":"CBUQm_MFGAEiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchPlaylistEndpoint":{"playlistId":"RDAMPLPLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","params":"wAEB"}},"trackingParams":"CBUQm_MFGAEiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Play next"}]},"icon":{"iconType":"QUEUE_PLAY_NEXT"},"serviceEndpoint":{"clickTrackingParams":"CBMQvu4FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","onEmptyQueue":{"clickTrackingParams":"CBMQvu4FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}}},"queueInsertPosition":"INSERT_AFTER_CURRENT_VIDEO","commands":[{"clickTrackingParams":"CBMQvu4FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Playlist will play next"}]},"trackingParams":"CBQQyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CBMQvu4FGAIiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_REMOTE_QUEUE"},"serviceEndpoint":{"clickTrackingParams":"CBEQ--8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","queueAddEndpoint":{"queueTarget":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","onEmptyQueue":{"clickTrackingParams":"CBEQ--8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","watchEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}}},"queueInsertPosition":"INSERT_AT_END","commands":[{"clickTrackingParams":"CBEQ--8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToToastAction":{"item":{"notificationTextRenderer":{"successResponseText":{"runs":[{"text":"Playlist added to queue"}]},"trackingParams":"CBIQyscDIhMIh4747be1hwMVr8dCBR226Acs"}}}}]}},"trackingParams":"CBEQ--8FGAMiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuServiceItemDownloadRenderer":{"serviceEndpoint":{"clickTrackingParams":"CA8Q0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw=","offlinePlaylistEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","action":"ACTION_ADD","offlineability":{"offlineabilityRenderer":{"offlineable":true,"clickTrackingParams":"CBAQxzciEwiHjvjtt7WHAxWvx0IFHbboBywyC29mZmxpbmVsaXN0"}},"onAddCommand":{"clickTrackingParams":"CA8Q0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw=","getDownloadActionCommand":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","params":"CAI%3D"}}}},"trackingParams":"CA8Q0aoFGAQiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"ADD_TO_PLAYLIST"},"navigationEndpoint":{"clickTrackingParams":"CA4Qw5QGGAUiEwiHjvjtt7WHAxWvx0IFHbboByw=","addToPlaylistEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}},"trackingParams":"CA4Qw5QGGAUiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"navigationEndpoint":{"clickTrackingParams":"CA0QkfsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw=","shareEntityEndpoint":{"serializedShareEntity":"EiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RU","sharePanelType":"SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL"}},"trackingParams":"CA0QkfsFGAYiEwiHjvjtt7WHAxWvx0IFHbboByw="}},{"menuNavigationItemRenderer":{"text":{"runs":[{"text":"Delete playlist"}]},"icon":{"iconType":"DELETE"},"navigationEndpoint":{"clickTrackingParams":"CAkQ__4FGAciEwiHjvjtt7WHAxWvx0IFHbboByw=","confirmDialogEndpoint":{"content":{"confirmDialogRenderer":{"title":{"runs":[{"text":"Delete playlist"}]},"trackingParams":"CAoQxjgiEwiHjvjtt7WHAxWvx0IFHbboByw=","dialogMessages":[{"runs":[{"text":"Are you sure you want to delete this playlist?"}]}],"confirmButton":{"buttonRenderer":{"style":"STYLE_LIGHT_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Delete"}]},"serviceEndpoint":{"clickTrackingParams":"CAwQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw=","deletePlaylistEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}},"trackingParams":"CAwQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw="}},"cancelButton":{"buttonRenderer":{"style":"STYLE_LIGHT_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Cancel"}]},"trackingParams":"CAsQ8FsiEwiHjvjtt7WHAxWvx0IFHbboByw="}}}}}},"trackingParams":"CAkQ__4FGAciEwiHjvjtt7WHAxWvx0IFHbboByw="}}],"trackingParams":"CAgQpzsYBCITCIeO-O23tYcDFa_HQgUdtugHLA==","accessibility":{"accessibilityData":{"label":"Action menu"}}}}],"title":{"runs":[{"text":"Example_collaborative_playlist"}]},"subtitle":{"runs":[{"text":"Playlist"},{"text":" • "},{"text":"Unlisted"},{"text":" • "},{"text":"2024"}]},"trackingParams":"CAYQneEIIhMIh4747be1hwMVr8dCBR226Acs","straplineTextOne":{"runs":[{"text":"USER_CHANNEL","navigationEndpoint":{"clickTrackingParams":"CAYQneEIIhMIh4747be1hwMVr8dCBR226Acs","browseEndpoint":{"browseId":"UCKbBYXrDDp2oCDbWkq1bCTQ","browseEndpointContextSupportedConfigs":{"browseEndpointContextMusicConfig":{"pageType":"MUSIC_PAGE_TYPE_USER_CHANNEL"}}}}}]},"straplineThumbnail":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/ytc/AIdro_kNsI46AC2c7KwinTKDWecTANxiiiha1j28Ms2eJuJYDuEluklPGfXCGhiWl9x6-o8Uzws=s48-c-k-c0x00000000-no-cc-rj-rp","width":48,"height":48},{"url":"https://yt3.ggpht.com/ytc/AIdro_kNsI46AC2c7KwinTKDWecTANxiiiha1j28Ms2eJuJYDuEluklPGfXCGhiWl9x6-o8Uzws=s96-c-k-c0x00000000-no-cc-rj-rp","width":96,"height":96}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_UNSPECIFIED","trackingParams":"CAcQhL8CIhMIh4747be1hwMVr8dCBR226Acs"}},"description":{"musicDescriptionShelfRenderer":{"description":{"runs":[{"text":"Example playlist with collaboration"}]},"moreButton":{"toggleButtonRenderer":{"isToggled":false,"isDisabled":false,"defaultIcon":{"iconType":"EXPAND"},"defaultText":{"runs":[{"text":"More"}]},"toggledIcon":{"iconType":"COLLAPSE"},"toggledText":{"runs":[{"text":"Less"}]},"trackingParams":"CAgQmE0iEwiHl_uKrbaHAxUv0EIFHe4SBko="}},"trackingParams":"CAcQiPgDIhMIh5f7iq22hwMVL9BCBR3uEgZK","shelfStyle":"MUSIC_SHELF_STYLE_OPEN_DIALOG_ON_CLICK"}},"secondSubtitle":{"runs":[{"text":"4 tracks"},{"text":" • "},{"text":"11 minutes, 15 seconds"}]}}},"editHeader":{"musicPlaylistEditHeaderRenderer":{"title":{"runs":[{"text":"Example_collaborative_playlist"}]},"editTitle":{"runs":[{"text":"Title"}]},"description":{"runs":[{"text":"Example playlist with collaboration"}]},"editDescription":{"runs":[{"text":"Description"}]},"privacy":"UNLISTED","trackingParams":"CAUQsN0CIhMIh4747be1hwMVr8dCBR226Acs","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","collaborationSettingsCommand":{"clickTrackingParams":"CAUQsN0CIhMIh4747be1hwMVr8dCBR226Acs","playlistEditorEndpoint":{"playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT","openCollaborationPage":true}},"privacyDropdown":{"dropdownRenderer":{"entries":[{"dropdownItemRenderer":{"label":{"runs":[{"text":"Public"}]},"isSelected":false,"accessibility":{"label":"Public"},"stringValue":"public","icon":{"iconType":"PRIVACY_PUBLIC"},"descriptionText":{"runs":[{"text":"Anyone can search for and view"}]}}},{"dropdownItemRenderer":{"label":{"runs":[{"text":"Unlisted"}]},"isSelected":true,"accessibility":{"label":"Unlisted"},"stringValue":"unlisted","icon":{"iconType":"LINK"},"descriptionText":{"runs":[{"text":"Anyone with the link can view"}]}}},{"dropdownItemRenderer":{"label":{"runs":[{"text":"Private"}]},"isSelected":false,"accessibility":{"label":"Private"},"stringValue":"private","icon":{"iconType":"LOCK"},"descriptionText":{"runs":[{"text":"Only you can view"}]}}}],"label":"Privacy","accessibility":{"label":"Privacy"}}},"playlistCollaborationEntityKey":"EiJQTEVVaWp0TGZwQ09nSThMTk93aXd2cTBFSjhIQUdqN2RUIJ0EKAE%3D"}},"trackingParams":"CAQQr90CGAAiEwiHjvjtt7WHAxWvx0IFHbboByw=","playlistId":"PLEUijtLfpCOgI8LNOwiwvq0EJ8HAGj7dT"}}],"trackingParams":"CAMQui8iEwiHjvjtt7WHAxWvx0IFHbboByw="}},"trackingParams":"CAIQ8JMBGAAiEwiHjvjtt7WHAxWvx0IFHbboByw="}}]}},"trackingParams":"CAAQhGciEwiHjvjtt7WHAxWvx0IFHbboByw=","background":{"musicThumbnailRenderer":{"thumbnail":{"thumbnails":[{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s192","width":192,"height":192},{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s576","width":576,"height":576},{"url":"https://yt3.googleusercontent.com/-rfvG5BzGM5oTylN2wPwO0dPsaQjMZKvj9kcTuBH1eUCLWGNXq2K9RR02THg1VNsbf_8s885reo=s1200","width":1200,"height":1200}]},"thumbnailCrop":"MUSIC_THUMBNAIL_CROP_UNSPECIFIED","thumbnailScale":"MUSIC_THUMBNAIL_SCALE_UNSPECIFIED","trackingParams":"CAEQhL8CIhMIh4747be1hwMVr8dCBR226Acs"}}}
\ No newline at end of file
diff --git a/tests/mixins/test_browsing.py b/tests/mixins/test_browsing.py
index 01f4a3c..a8d9a7e 100644
--- a/tests/mixins/test_browsing.py
+++ b/tests/mixins/test_browsing.py
@@ -15,7 +15,7 @@ class TestBrowsing:
 
     def test_get_artist(self, yt):
         results = yt.get_artist("MPLAUCmMUZbaYdNH0bEd1PAlAqsA")
-        assert len(results) == 14
+        assert len(results) == 16
 
         # test correctness of related artists
         related = results["related"]["results"]
@@ -85,6 +85,12 @@ class TestBrowsing:
             assert len(album["tracks"]) == 19
             assert len(album["artists"]) == 1
             assert len(album) == 14
+            for track in album["tracks"]:
+                assert isinstance(track["title"], str) and track["title"]
+                assert len(track["artists"]) > 0
+                for artist in track["artists"]:
+                    assert "name" in artist
+                    assert isinstance(artist["name"], str) and artist["name"]
 
     def test_get_album(self, yt, yt_auth, sample_album):
         album = yt_auth.get_album(sample_album)
diff --git a/tests/mixins/test_playlists.py b/tests/mixins/test_playlists.py
index f6ebed3..089e77e 100644
--- a/tests/mixins/test_playlists.py
+++ b/tests/mixins/test_playlists.py
@@ -16,6 +16,7 @@ class TestPlaylists:
         [
             ("2024_03_get_playlist.json", True),
             ("2024_03_get_playlist_public.json", False),
+            ("2024_07_get_playlist_collaborative.json", True),
         ],
     )
     def test_get_playlist_2024(self, yt, test_file, owned):
@@ -25,9 +26,20 @@ class TestPlaylists:
             playlist = yt.get_playlist("MPREabc")
             assert playlist["year"] == "2024"
             assert playlist["owned"] == owned
-            assert "hours" in playlist["duration"]
+            assert "hours" in playlist["duration"] or "minutes" in playlist["duration"]
             assert playlist["id"]
-            assert isinstance(playlist["description"], str)
+            assert isinstance(playlist["description"], str) and playlist["description"]
+            assert len(playlist["tracks"]) > 0
+
+            for track in playlist["tracks"]:
+                assert isinstance(track["title"], str) and track["title"]
+
+                assert len(track["artists"]) > 0
+                for artist in track["artists"]:
+                    assert isinstance(artist["name"], str) and artist["name"]
+
+                if track["videoType"] == "MUSIC_VIDEO_TYPE_ATV":
+                    assert isinstance(track["album"]["name"], str) and track["album"]["name"]
 
     def test_get_playlist_foreign(self, yt, yt_auth, yt_oauth):
         with pytest.raises(Exception):