dilame / instagram-private-api

NodeJS Instagram private API SDK. Written in TypeScript.
MIT License
5.99k stars 1.14k forks source link

Media.ConfigureVideo fails to add caption #284

Closed lucars83 closed 7 years ago

lucars83 commented 7 years ago

I've been using instagram-private-api since April without issue. However starting last ~Wednesday (8/2/2017) none of my videos have had a caption. I did some testing last weekend but I was unable to figure out the problem.

The ConfigureVideo request succeeds but the caption is not added to the video.

I assume that the endpoint has changed and that the caption field has been renamed.

If anyone is willing to give me pointers on how to capture Instagram traffic I will take another look. Otherwise this bug looks beyond my ability.

dilame commented 7 years ago

@lucars83 i already know about this problem, will try to solve it as soon as possible.

dilame commented 7 years ago

@lucars83 you can try to configureVideo now. I updated this method to the contemporary parameters. Please let us know if you succeeded.

lucars83 commented 7 years ago

No joy. I ran v0.6.2 with node v6.11.2, I had to upgrade from 5.10.1. This morning the same thing happened, the request returned successfully but the caption was not added. Tonight I tried again and received the following {[ ParseError: Not possible to parse API response] name: 'ParseError', message: 'Not possible to parse API response', response: IncomingMessage { _readableState: ReadableState { objectMode: false, highWaterMark: 16384, buffer: [Object], length: 0, pipes: null, pipesCount: 0, flowing: true, ended: true, endEmitted: true, reading: false, sync: false, needReadable: false, emittedReadable: false, readableListening: false, resumeScheduled: false, defaultEncoding: 'utf8', ranOut: false, awaitDrain: 0, readingMore: false, decoder: null, encoding: null }, readable: false, domain: null, _events: { end: [Object], close: [Object], data: [Function], error: [Function] }, _eventsCount: 4, _maxListeners: undefined, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: false, alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object], _eventsCount: 9, connecting: false, _hadError: false, _handle: null, _parent: null, _host: 'upload.instagram.com', _readableState: [Object], readable: false, domain: null, _maxListeners: undefined, _writableState: [Object], writable: false, allowHalfOpen: false, destroyed: true, _bytesDispatched: 128863, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: false, parser: null, _httpMessage: [Object], read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, connection: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: false, alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object], _eventsCount: 9, connecting: false, _hadError: false, _handle: null, _parent: null, _host: 'upload.instagram.com', _readableState: [Object], readable: false, domain: null, _maxListeners: undefined, _writableState: [Object], writable: false, allowHalfOpen: false, destroyed: true, _bytesDispatched: 128863, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: false, parser: null, _httpMessage: [Object], read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, headers: { 'content-type': 'text/html; charset=utf-8', 'access-control-allow-origin': '', date: 'Wed, 09 Aug 2017 04:07:55 GMT', connection: 'close', 'content-length': '2959' }, rawHeaders: [ 'Content-Type', 'text/html; charset=utf-8', 'Access-Control-Allow-Origin', '', 'Date', 'Wed, 09 Aug 2017 04:07:55 GMT', 'Connection', 'close', 'Content-Length', '2959' ], trailers: {}, rawTrailers: [], upgrade: false, url: '', method: null, statusCode: 502, statusMessage: 'Bad Gateway', client: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: false, alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object], _eventsCount: 9, connecting: false, _hadError: false, _handle: null, _parent: null, _host: 'upload.instagram.com', _readableState: [Object], readable: false, domain: null, _maxListeners: undefined, _writableState: [Object], writable: false, allowHalfOpen: false, destroyed: true, _bytesDispatched: 128863, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: false, parser: null, _httpMessage: [Object], read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, _consuming: true, _dumped: false, req: ClientRequest { domain: null, _events: [Object], _eventsCount: 5, _maxListeners: undefined, output: [], outputEncodings: [], outputCallbacks: [], outputSize: 0, writable: true, _last: true, upgrading: false, chunkedEncoding: false, shouldKeepAlive: false, useChunkedEncodingByDefault: true, sendDate: false, _removedHeader: [Object], _contentLength: null, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: [Object], connection: [Object], _header: 'POST /api/v1/stage/video/?target=ash1c21&vx_token=10007&staging_in_tao=0 HTTP/1.1\r\nX-IG-Connection-Type: WIFI\r\nX-IG-Capabilities: 3QI=\r\nAccept-Language: en-US\r\nHost: upload.instagram.com\r\nAccept: /\r\nAccept-Encoding: gzip, deflate, sdch\r\nConnection: Close\r\nUser-Agent: Instagram 10.21.0 Android (20/4.4.4; 515dpi; 2560x1440; Toshiba; AT300; tostab11BA; en_US)\r\njob: AQB6RVXMaG0PXhr2e8OA7iC1u-YW7XhWMAE3aAX8M779p8qcVFkWJBRxh6KUqe7VxZ1KmBG3VAuv8MGxE9ciVYVNF1JxBmj4MbUZdZh_lB1HPHksNYRSqZXOUlth4Ch_GChe0CeyzjglWeVWG-TMBpnbxAE-nmEZbPWoYtjW2K9OQrEf4qJPz19QT7_EbpYo0PJFyhfQJ-OwsTfBxV5d0J7But9WRXXkMEx_aN3AUqFAYyqWAEcoB7VR4leDdvKPZoXOJ8U9yc8k7_Tosj_eugL6Sjgkmq3kI300OqmVvUKSO-vfoaznrxkTnoll4OuN3r33xm8M0HfFX_XincM-cMHC6VJ5ZvmGkRF9mYJyUYEKkQ\r\nSession-ID: 1502251632159-108417945\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename=\"video.mov\"\r\nContent-Length: 127835\r\nContent-Range: bytes 0-204799/127835\r\ncookie: rur=ASH; csrftoken=cCHU6WQUnAJwNzitLw2q8uScFUmyv4CN; mid=WYnBDQABAAEG0YKAlSKAb4X4MZPz\r\n\r\n', _headers: [Object], _headerNames: [Object], _onPendingData: null, agent: [Object], socketPath: undefined, timeout: undefined, method: 'POST', path: '/api/v1/stage/video/?target=ash1c21&vx_token=10007&staging_in_tao=0', _ended: true, parser: null, res: [Circular] }, request: Request { domain: null, _events: [Object], _eventsCount: 5, _maxListeners: undefined, method: 'POST', resolveWithFullResponse: true, headers: [Object], gzip: true, body: <Buffer 00 00 00 20 66 74 79 70 69 73 6f 6d 00 00 02 00 69 73 6f 6d 69 73 6f 32 61 76 63 31 6d 70 34 31 00 00 00 08 66 72 65 65 00 01 b1 89 6d 64 61 74 00 00 ... >, readable: true, writable: true, explicitMethod: true, _qs: [Object], _auth: [Object], _oauth: [Object], _multipart: [Object], _redirect: [Object], _tunnel: [Object], _rp_resolve: [Function], _rp_reject: [Function], _rp_promise: [Object], _rp_callbackOrig: undefined, callback: [Function], _rp_options: [Object], setHeader: [Function], hasHeader: [Function], getHeader: [Function], removeHeader: [Function], localAddress: undefined, pool: {}, dests: [], __isRequestRequest: true, _callback: [Function: RP$callback], uri: [Object], proxy: null, tunnel: true, setHost: false, originalCookieHeader: undefined, _jar: [Object], port: 443, host: 'upload.instagram.com', path: '/api/v1/stage/video/?target=ash1c21&vx_token=10007&staging_in_tao=0', httpModule: [Object], agentClass: [Object], agent: [Object], _started: true, href: 'https://upload.instagram.com/api/v1/stage/video/?target=ash1c21&vx_token=10007&staging_in_tao=0', req: [Object], ntick: true, response: [Circular], originalHost: 'upload.instagram.com', originalHostHeaderName: 'Host', responseContent: [Circular], _destdata: true, _ended: true, _callbackCalled: true }, toJSON: [Function: responseToJSON], caseless: Caseless { dict: [Object] }, read: [Function], body: '<!DOCTYPE html>\n\n \n Facebook | Error\n \n \n \n \n \n \n \n \n \n \n

\n
\n

Sorry, something went wrong.

\n

\n We\'re working on it and we\'ll get it fixed as soon as we can.\n

\n \n \n
\n \n \n\n' }, request: Request { _id: '2', _url: 'https://upload.instagram.com/api/v1/stage/video/?target=ash1c21&vx_token=10007&staging_in_tao=0', _signData: false, _request: { method: 'POST', data: [Object], bodyType: 'body', options: [Object], headers: [Object] }, attemps: 2, _session: Session { _device: [Object], _cookiesStore: [Object], _jar: [Object] }, _device: Device { username: 'username', _md5int: 322693272651972, _api: 20, _release: '4.4.4', _dpi: '515', _resolution: '2560x1440', _info: [Object], _language: 'en_US' }, _transform: [Function] } } I wonder if I was hitting the API too much?

IvanMMM commented 7 years ago

@lucars83, I believe not. There will be a message telling you if you hit your API limitations.

IvanMMM commented 7 years ago

Anyway we'l need some packets captured before we'l we able to resolve it. My video captions are working fine.

IvanMMM commented 7 years ago

Need more info. Probably user-side bug, not module.