@@ -24,7 +24,7 @@ import type {
2424} from '../types' ;
2525import TwitterApiv2LabsReadWrite from '../v2-labs/client.v2.labs.write' ;
2626import { CreateDMConversationParams , PostDMInConversationParams , PostDMInConversationResult } from '../types/v2/dm.v2.types' ;
27- import { MediaV2MediaCategory , MediaV2MetadataCreateParams , MediaV2MetadataCreateResult , MediaV2UploadAppendParams , MediaV2UploadFinalizeParams , MediaV2UploadInitParams , MediaV2UploadResponse } from '../types/v2/media.v2.types' ;
27+ import { MediaV2MediaCategory , MediaV2MetadataCreateParams , MediaV2MetadataCreateResult , MediaV2UploadAppendParams , MediaV2UploadInitParams , MediaV2UploadResponse } from '../types/v2/media.v2.types' ;
2828
2929/**
3030 * Base Twitter v2 client with read/write rights.
@@ -150,13 +150,12 @@ export default class TwitterApiv2ReadWrite extends TwitterApiv2ReadOnly {
150150 }
151151
152152 const initArguments : MediaV2UploadInitParams = {
153- command : 'INIT' ,
154153 media_type : options . media_type ,
155154 total_bytes : media . length ,
156155 media_category,
157156 } ;
158157
159- const initResponse = await this . post < MediaV2UploadResponse > ( 'media/upload' , initArguments , { forceBodyMode : 'form-data' } ) ;
158+ const initResponse = await this . post < MediaV2UploadResponse > ( 'media/upload/initialize ' , initArguments , { forceBodyMode : 'form-data' } ) ;
160159 const mediaId = initResponse . data . id ;
161160
162161 const chunksCount = Math . ceil ( media . length / chunkSize ) ;
@@ -168,21 +167,14 @@ export default class TwitterApiv2ReadWrite extends TwitterApiv2ReadOnly {
168167 const chunkedBuffer = Buffer . from ( mediaChunk ) ;
169168
170169 const appendArguments : MediaV2UploadAppendParams = {
171- command : 'APPEND' ,
172- media_id : mediaId ,
173170 segment_index : i ,
174171 media : chunkedBuffer ,
175172 } ;
176173
177- await this . post ( ' media/upload' , appendArguments , { forceBodyMode : 'form-data' } ) ;
174+ await this . post ( ` media/upload/ ${ mediaId } /append` , appendArguments , { forceBodyMode : 'form-data' } ) ;
178175 }
179176
180- const finalizeArguments : MediaV2UploadFinalizeParams = {
181- command : 'FINALIZE' ,
182- media_id : mediaId ,
183- } ;
184-
185- const finalizeResponse = await this . post < MediaV2UploadResponse > ( 'media/upload' , finalizeArguments , { forceBodyMode : 'form-data' } ) ;
177+ const finalizeResponse = await this . post < MediaV2UploadResponse > ( `media/upload/${ mediaId } /finalize` ) ;
186178 if ( finalizeResponse . data . processing_info ) {
187179 await this . waitForMediaProcessing ( mediaId ) ;
188180 }
0 commit comments