Skip to content

9.0.2 API version parsing failed sometimes due to response data changed in sw.js_data #602

Description

@PikachuEXE

Steps to reproduce

  • Save following script into a file e.g. script.js
  • Install youtube.js (I did this in FreeTube project folder)
  • node script.js
const { Innertube } = require('youtubei.js')

async function createInnertube(options = { withPlayer: false, location: undefined, safetyMode: false, clientType: undefined, generateSessionLocally: true }) {
  return await Innertube.create({
    enable_safety_mode: false,
    generate_session_locally: !!options.generateSessionLocally
  })
}

console.info('hi');

(async () => {
  const innertube = await createInnertube({ withPlayer: true, generateSessionLocally: false })
  player = innertube.actions.session.player

  info = await innertube.getInfo('cq7TIFTmqTU')

  console.info('Done!', info)
})()

Failure Logs

hi
/Users/pikachuexe/projects/electron/FreeTube/node_modules/youtubei.js/bundle/node.cjs:3958
      throw new InnertubeError(`Request to ${response.url} failed with status ${response.status}`, yield response.text());
            ^

InnertubeError: Request to https://www.youtube.com/youtubei/vtrue/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false&alt=json failed with status 400
    at HTTPClient.<anonymous> (/Users/pikachuexe/projects/electron/FreeTube/node_modules/youtubei.js/bundle/node.cjs:3958:13)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/pikachuexe/projects/electron/FreeTube/node_modules/tslib/tslib.js:166:62)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  info: `<html lang="zh-Hant-HK" dir="ltr">(( Removed ))</html>`,
  date: 2024-02-22T00:53:33.665Z,
  version: '9.0.2'
}

Node.js v20.11.0

Expected behavior

Parse response correctly

Current behavior

Parsing failed

Version

Default

Anything else?

It happens sometimes (not always)
Maybe YT testing something...
New sw.js_data example: (IP altered)

[["yt.sw.adr",null,[[["en","US","US","1.1.1.1",null,null,true,null,null,null,null,"Apple","","CgtJSzFjTGhvM0dhcyibt9quBjIKCgJISxIEGgAgFA%3D%3D","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.283 Safari/537.36,gzip(gfe)",1,"2.20240220.08.00","Macintosh","10_15_7",null,null,null,"https://www.youtube.com/sw.js_data",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,"bw\u003d5948,sni\u003dwww.youtube.com,gfe_version\u003d2.865.2,client_port\u003d45157,srtt\u003d8,client_protocol\u003dh3,vip\u003d172.217.27.46,cc\u003dHK,asn\u003d9269,connection_created_usec\u003d1708563355050855,header_order\u003dHALUREC,tlsext\u003dS,vip_region\u003ddefault,ja3\u003d08dd052f7f28b92612035c3bfdd48a92,location\u003dhkg12s37,gfe\u003dachkgmm13.prod.google.com,server_port\u003d443,scheme\u003dhttps,pzf\u003dn/a,ssl_info\u003dQUIC:RNA:T,ssl,rtt_source\u003dtcp,hex_encoded_client_hello\u003d130113021303-00-0010000a000d00000033002d002b001b00394469fe0d,request_header_bytes\u003d19,tcp_connection_request_count\u003d0,client_transport\u003dquic,eid\u003dm5vWZfamBJaa9cEPq_-gwAE,metro\u003dHKG,tcp_connection_response_count\u003d0,pn\u003dquic,rtt\u003d8",null,null,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[null,null,null,null,null,"CJu32q4GEKWQsAUQ0I2wBRDdsLAFEOLUrgUQkLKwBRChrrAFEPywsAUQsLKwBRDUoa8FEKaBsAUQ1YiwBRClwv4SENfprwUQ7qKvBRC3768FEOuTrgUQuIuuBRDMrv4SEOe6rwUQieiuBRDzobAFEParsAUQvvmvBRC70q8FEPyFsAUQz6iwBRDqw68FEIjjrwUQqJqwBRDd6P4SEMzfrgUQmrCwBRDJ968FEL22rgUQ26-vBRC9mbAFELfq_hIQybiwBRCigbAFEOHyrwUQ6-j-EhDcgrAFEPqnsAUQ0-GvBRCjk_8SEIiHsAUQl4OwBRC-irAFEPSrsAUQuKqwBRDus7AFEISFrwUQopKwBRCqjf8SEKaasAUQxrmwBRC8-a8FENnJrwUQrtT-EhC3q7AFEPy2sAUQmvCvBRCMu7AFENKS_xIQs4KwBQ%3D%3D"],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,true,null,null,null,["HK",2],null,null,null,"Chrome","120.0.6099.283",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"*/*","ChxOek16T0RJeU16Y3pNemt3TURjd056a3lOUT09EJu32q4GGJu32q4G"],null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,false],null,[null,null,null,null,null,null,true,null,null,null,null,null,null,null,null,null,[1708563355079041,99967211,3355863518]],[null,"IhMIgaPsvt69hAMV62D1BR3eaQbI"]],"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8",null,null,"","QUFFLUhqbnM4UjlXZmV4T19sVG5QS3Rjdkp0bnBSTGRrd3xBQ3Jtc0tsQm9FNHRkWm9XNHVIQU9YdU5SZ0haRlVMQll0R1RjUlRieUNyaW1sQUFuRnByR01oY2IzQWdLOTZGSldQLUQ3QnhRQlhhaTZTSEdXYm9IQU8wSGVQV0ZHRkZJRC01Z2hvZzZONnZ4OWFiOUdHejJpZw\u003d\u003d","CgtJSzFjTGhvM0dhcyibt9quBjIKCgJISxIEGgAgFA%3D%3D"],"V1008751a||"]]

Old sw.js_data example: (IP altered)

[["yt.sw.adr",null,[[["en","US","US","1.1.1.1",null,null,1,null,[],null,null,"Apple","","CgstRDBKdFRIbi1JTSigutquBjIKCgJISxIEGgAgbQ%3D%3D","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.283 Safari/537.36,gzip(gfe)",1,"2.20240220.08.00","Macintosh","10_15_7",null,null,null,"https://www.youtube.com/sw.js_data",null,null,null,null,null,null,null,null,[],null,null,null,null,null,null,null,null,null,1,"rtt_source\u003dtcp,gfe_version\u003d2.865.2,server_port\u003d443,tcp_connection_request_count\u003d0,request_header_bytes\u003d19,connection_created_usec\u003d1708563744581238,ssl_info\u003dQUIC:RA:F,vip_region\u003ddefault,sni\u003dwww.youtube.com,client_transport\u003dquic,rtt\u003d15,pzf\u003dn/a,location\u003dhkg07s40,eid\u003dIJ3WZYueJIaU8wfRwq3oDQ,metro\u003dHKG,asn\u003d9269,ja3\u003decbdd4ecd12657f8ac20a04acaadb463,gfe\u003dachkgt6.prod.google.com,hex_encoded_client_hello\u003d130113021303-00-fe0d000d002d002b4469001b002a0000000a0010003900330029,ssl,vip\u003d142.250.204.110,scheme\u003dhttps,pn\u003dquic,header_order\u003dHALUREC,tlsext\u003dS,tcp_connection_response_count\u003d0,client_port\u003d12202,cc\u003dHK,client_protocol\u003dh3,srtt\u003d15",null,null,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[null,null,null,null,null,"CKC62q4GEKiasAUQvYqwBRC70q8FEL22rgUQieiuBRDi1K4FENWIsAUQ_LCwBRCI468FEM-osAUQiIewBRD0q7AFEOrDrwUQt6uwBRDM364FEL2ZsAUQqo3_EhC4qrAFEKaasAUQvPmvBRDbr68FELfvrwUQzK7-EhD8hbAFELfq_hIQ65OuBRCXg7AFEKKBsAUQ0-GvBRDnuq8FEKaBsAUQmvCvBRCQsrAFEO6zsAUQpcL-EhCikrAFEPOhsAUQrtT-EhDQjbAFEKGusAUQ-qewBRClkLAFEN3o_hIQ9quwBRDUoa8FEOvo_hIQyfevBRCasLAFEN2wsAUQ2cmvBRC--a8FEP22sAUQ7qKvBRC8t7AFENfprwUQsLKwBRC4i64FENyCsAUQ4fKvBRCMu7AF"],null,null,null,[],null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,["HK",2],null,null,[],"Chrome","120.0.6099.283",null,null,null,null,null,null,null,null,null,null,null,[],[],null,"*/*","ChxOek16T0RJeU5UUXdORFk1TURBd01qVTBOQT09EKC62q4GGKC62q4G"],null,[null,null,null,null,null,null,null,null,null,null,null,[],null,null,null,0],null,[null,null,null,null,null,null,1,null,null,null,null,null,null,null,[],null,[1708563744601701,22453084,1862675683],null,null,null,null,null,null,null,null,[],null,[]],[null,"IhMI5ezK+N+9hAMVXJtWAR3jLAZv"],null,null,null,null,null,[]],"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8",null,null,"","QUFFLUhqblY2bG1kVWNMMWtfZmlFd2ItMVRkQjBLU21fZ3xBQ3Jtc0ttRUJWNDhUTzFxYXg5ZjE5UlBacWlsTWtzdVZmdldYUEp0MHZseXRQd1dsOFBYdVlqcllDY3NRYjM2eWFxLVRycTMwRkVoVnVVSmNJemtnOVBxRVdYdVlaelNpd0NMRE11NV92R2kwQ0V0S3ZkV1Z0TQ\u003d\u003d","CgstRDBKdFRIbi1JTSigutquBjIKCgJISxIEGgAgbQ%3D%3D"],"Ve5b91167||"]]

Checklist

  • I am running the latest version.
  • I checked the documentation and found no answer.
  • I have searched the existing issues and made sure this is not a duplicate.
  • I have provided sufficient information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions