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
Steps to reproduce
script.jsyoutube.js(I did this in FreeTube project folder)node script.jsFailure 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.0Expected behavior
Parse response correctly
Current behavior
Parsing failed
Version
Default
Anything else?
It happens sometimes (not always)
Maybe YT testing something...
New
sw.js_dataexample: (IP altered)Old
sw.js_dataexample: (IP altered)Checklist