cookies for ytdl
This commit is contained in:
parent
d56fc025f2
commit
f75783569e
@ -9,6 +9,345 @@ import * as xml2js from 'xml2js';
|
|||||||
|
|
||||||
const service = google.youtube("v3");
|
const service = google.youtube("v3");
|
||||||
|
|
||||||
|
const agent = ytdl.createAgent([
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678493,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "__Secure-1PAPISID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "Ydllg_a0ziZ2IRkW/AxTe18r6nUqk7BEbQ",
|
||||||
|
"id": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678415,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-1PSID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "g.a000mwiFpDXHv-mE1JbzAv29Ye5X1D7V-zT1tEGx1_bd46Kree9yTMpJEGK4nnajwLM5d0hj7gACgYKAYUSARUSFQHGX2MiVlSE8GgO3Vmj3YT3n8k6WhoVAUF8yKoU4xPY7CM6zb7j98zdaVV70076",
|
||||||
|
"id": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1754861761.153214,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-1PSIDCC",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AKEyXzXzGpG2-NgDLDoR0-TXlyJVUQJQ_hzs2wEvAZmPy5VTxaOIXg4QrrR3N_v5EWUqhQ4q",
|
||||||
|
"id": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1754861754.678387,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-1PSIDTS",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "sidts-CjIBUFGohzuXoAbjBYmkalmpToyVGhPcAMyp-r3IgiyU7WlYnluERYQWrB-zOvpwcD5F_RAA",
|
||||||
|
"id": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678506,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "__Secure-3PAPISID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "no_restriction",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "Ydllg_a0ziZ2IRkW/AxTe18r6nUqk7BEbQ",
|
||||||
|
"id": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678427,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-3PSID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "no_restriction",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "g.a000mwiFpDXHv-mE1JbzAv29Ye5X1D7V-zT1tEGx1_bd46Kree9y4tCIp7vBEBU5tBLxdPiklQACgYKAVgSARUSFQHGX2MiCFYG1JWlH9dAu8gduZa6dRoVAUF8yKpMaD9-H5JRU8a-L-_Za4wd0076",
|
||||||
|
"id": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1754861761.153238,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-3PSIDCC",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "no_restriction",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AKEyXzUy-4CY7B0Gu-XHjrZVVpAWPNJNET5PQOlbRbmaa_ecvp7AS8Nwf5gbDTfL47zj0Dez3Q",
|
||||||
|
"id": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1754861754.678402,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-3PSIDTS",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "no_restriction",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "sidts-CjIBUFGohzuXoAbjBYmkalmpToyVGhPcAMyp-r3IgiyU7WlYnluERYQWrB-zOvpwcD5F_RAA",
|
||||||
|
"id": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757453723.663338,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "__Secure-YEC",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "lax",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "CgtVakdtMnJrZ2VwRSi_ut-1BjIKCgJERRIEEgAgKQ%3D%3D",
|
||||||
|
"id": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678463,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "APISID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "PzwvCMFIwi-WXHNK/Aa7aeSu6UGGiR3Xw-",
|
||||||
|
"id": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1723326359,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "CONSISTENCY",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AKreu9uoPRzjfNbvjscAvYa4AnZ7yXSd9GkhniF8n1uodA2SI5_UawxviB_l5efAOS7TIHbrzFvCUM3riEdLFWvDQ0So_SGThxdrORfZ0vAZzDn30MIgE0ddEa_h-aBhNzX4ispknt4SY4E76opMTGsu",
|
||||||
|
"id": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678441,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "HSID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "An0F5SiZ_NJH4_Rx4",
|
||||||
|
"id": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885756.324828,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "LOGIN_INFO",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "no_restriction",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AFmmF2swRQIgQD5euCkX56qyeRocOC192DF6siCwmZiG5RFdXIsIOKQCIQDVYMUXa9fafpFC4gJAi32F-LsqO7a5ptBfytQ0ooI-7g:QUQ3MjNmd1RmUlRfd25hTUFDT214TF9pcHlXcEh5ZHAzc2d0Rjc2WjZVUEJCRW1KSV9QRTlBZXpTLXA1QXFtdExyMzFncVdteTE4N1pMWk9yUnhTVU8taF93eEZlRm95UTdubHJ3emt4SVBYeVNjQ0dDREtnb2JWeHhHeU1HYy1xVlhlZTU4V3g3TnEyMm9uWDZzTzlBZHhjSG81dXZ3WnJn",
|
||||||
|
"id": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1739136959.800355,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "NID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "516=aE2sFI_rh_Rh7q0T-GD9vzWm4pf6Uak1iFjvzBFuRr8wxfSmJEDS6NzXpXKLLNKi_ba-NaxkIxkfhKJ9I3ODz9TmFnuTwQVvGbSordWz2DI3IvtXEygFNEGTTW1WuKBOHO-WXjdM2nuQ4b7d3KWiDttthySlnE6l0vur98aENPo",
|
||||||
|
"id": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885758.099494,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "PREF",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "f6=40000000&tz=Europe.Berlin",
|
||||||
|
"id": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678475,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "SAPISID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "Ydllg_a0ziZ2IRkW/AxTe18r6nUqk7BEbQ",
|
||||||
|
"id": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678333,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "SID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "g.a000mwiFpDXHv-mE1JbzAv29Ye5X1D7V-zT1tEGx1_bd46Kree9yaWb-XRQACGvVe52ZscToXgACgYKAc4SARUSFQHGX2MipK_BxY_xGkd82ZuR_-usghoVAUF8yKoD-HK1Ms_BeaLioA-9grr10076",
|
||||||
|
"id": 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1754861761.153147,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "SIDCC",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AKEyXzVET2aVXEooYcLzVZcKqrNU4ugR61hBJSb9_Kg9YQSdRmMSiwZNQZEHDNA0spao7jlE",
|
||||||
|
"id": 18
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757453733.489585,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "SOCS",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "lax",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "CAESFggDEgk2NjA1NTYzMjIaBWVuLUdCIAEaBgiA29q1Bg",
|
||||||
|
"id": 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1757885754.678452,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": true,
|
||||||
|
"name": "SSID",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": true,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "AMLcUMa2BaB8t4bo0",
|
||||||
|
"id": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1723325764,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "ST-hcbf8d",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "session_logininfo=AFmmF2swRQIgQD5euCkX56qyeRocOC192DF6siCwmZiG5RFdXIsIOKQCIQDVYMUXa9fafpFC4gJAi32F-LsqO7a5ptBfytQ0ooI-7g%3AQUQ3MjNmd1RmUlRfd25hTUFDT214TF9pcHlXcEh5ZHAzc2d0Rjc2WjZVUEJCRW1KSV9QRTlBZXpTLXA1QXFtdExyMzFncVdteTE4N1pMWk9yUnhTVU8taF93eEZlRm95UTdubHJ3emt4SVBYeVNjQ0dDREtnb2JWeHhHeU1HYy1xVlhlZTU4V3g3TnEyMm9uWDZzTzlBZHhjSG81dXZ3WnJn",
|
||||||
|
"id": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1723325763,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "ST-l3hjtt",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "session_logininfo=AFmmF2swRQIgQD5euCkX56qyeRocOC192DF6siCwmZiG5RFdXIsIOKQCIQDVYMUXa9fafpFC4gJAi32F-LsqO7a5ptBfytQ0ooI-7g%3AQUQ3MjNmd1RmUlRfd25hTUFDT214TF9pcHlXcEh5ZHAzc2d0Rjc2WjZVUEJCRW1KSV9QRTlBZXpTLXA1QXFtdExyMzFncVdteTE4N1pMWk9yUnhTVU8taF93eEZlRm95UTdubHJ3emt4SVBYeVNjQ0dDREtnb2JWeHhHeU1HYy1xVlhlZTU4V3g3TnEyMm9uWDZzTzlBZHhjSG81dXZ3WnJn",
|
||||||
|
"id": 22
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1723325763,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "ST-tladcw",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "session_logininfo=AFmmF2swRQIgQD5euCkX56qyeRocOC192DF6siCwmZiG5RFdXIsIOKQCIQDVYMUXa9fafpFC4gJAi32F-LsqO7a5ptBfytQ0ooI-7g%3AQUQ3MjNmd1RmUlRfd25hTUFDT214TF9pcHlXcEh5ZHAzc2d0Rjc2WjZVUEJCRW1KSV9QRTlBZXpTLXA1QXFtdExyMzFncVdteTE4N1pMWk9yUnhTVU8taF93eEZlRm95UTdubHJ3emt4SVBYeVNjQ0dDREtnb2JWeHhHeU1HYy1xVlhlZTU4V3g3TnEyMm9uWDZzTzlBZHhjSG81dXZ3WnJn",
|
||||||
|
"id": 23
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": ".youtube.com",
|
||||||
|
"expirationDate": 1723325764,
|
||||||
|
"hostOnly": false,
|
||||||
|
"httpOnly": false,
|
||||||
|
"name": "ST-xuwub9",
|
||||||
|
"path": "/",
|
||||||
|
"sameSite": "unspecified",
|
||||||
|
"secure": false,
|
||||||
|
"session": false,
|
||||||
|
"storeId": "1",
|
||||||
|
"value": "session_logininfo=AFmmF2swRQIgQD5euCkX56qyeRocOC192DF6siCwmZiG5RFdXIsIOKQCIQDVYMUXa9fafpFC4gJAi32F-LsqO7a5ptBfytQ0ooI-7g%3AQUQ3MjNmd1RmUlRfd25hTUFDT214TF9pcHlXcEh5ZHAzc2d0Rjc2WjZVUEJCRW1KSV9QRTlBZXpTLXA1QXFtdExyMzFncVdteTE4N1pMWk9yUnhTVU8taF93eEZlRm95UTdubHJ3emt4SVBYeVNjQ0dDREtnb2JWeHhHeU1HYy1xVlhlZTU4V3g3TnEyMm9uWDZzTzlBZHhjSG81dXZ3WnJn",
|
||||||
|
"id": 24
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
export async function getVideoById(access_token, video_id) {
|
export async function getVideoById(access_token, video_id) {
|
||||||
const video = await service.videos.list({
|
const video = await service.videos.list({
|
||||||
access_token,
|
access_token,
|
||||||
@ -60,7 +399,7 @@ export async function getChannelInfo(access_token) {
|
|||||||
part: "id,contentDetails,snippet",
|
part: "id,contentDetails,snippet",
|
||||||
mine: true,
|
mine: true,
|
||||||
maxResults: 1
|
maxResults: 1
|
||||||
}).then(res => res);
|
}, {agent}).then(res => res);
|
||||||
|
|
||||||
if (!channel.data.items[0]) {
|
if (!channel.data.items[0]) {
|
||||||
throw new Error("no_channel");
|
throw new Error("no_channel");
|
||||||
@ -121,7 +460,7 @@ export async function getAccessToken(fastify, request) {
|
|||||||
|
|
||||||
export async function getVideoDetails(video_url) {
|
export async function getVideoDetails(video_url) {
|
||||||
if (!(ytdl.validateURL(video_url))) throw new Error("Invalid Youtube URL");
|
if (!(ytdl.validateURL(video_url))) throw new Error("Invalid Youtube URL");
|
||||||
const info = await ytdl.getBasicInfo(video_url);
|
const info = await ytdl.getBasicInfo(video_url, {agent});
|
||||||
return {
|
return {
|
||||||
title: info.videoDetails.title,
|
title: info.videoDetails.title,
|
||||||
description: info.videoDetails.description
|
description: info.videoDetails.description
|
||||||
@ -177,3 +516,4 @@ export async function getVideoWithCaptions(video_url) {
|
|||||||
captions: await parseXMLCaptions(captions)
|
captions: await parseXMLCaptions(captions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user