Sto provando a utilizzare Curl per caricare in gruppo su YouTube, seguendo la specifica API here; in breve, richiede una richiesta POST multipart con metadati in formato XML e Content-Type di application/atom+xml; charset=UTF-8
, seguito dai dati del video stesso.arricciatura: Per-file Content-Type per POST multiplo (YouTube API)
La mia linea di comando corrente (recupero i metadati dal upl.xml e il video da upl.mkv) simile a questa:
curl -s -F "[email protected]" -F "[email protected]" -H 'GData-Version: 2' -H 'Authorization: GoogleLogin auth=<AUTH>' -H 'Slug: upl.mkv' -H 'X-GData-Key: key=<KEY>' http://uploads.gdata.youtube.com/feeds/api/users/default/uploads
Quando controllo la richiesta effettiva che viene inviato con --trace
, sembra come se entrambi i file fossero inviati nell'ordine corretto, ma il Content-Type dei metadati è impostato su application/octet-stream
; l'upload è completato come previsto, ma YouTube si rifiuta di elaborare il video.
Se provo a presentare upl.xml con --data
, --data-ascii
, --form-string
ecc ottengo solo un assortimento di altri errori, che mi porta a credere che sia giù alla non corretta Content-Type. Se ignoro i metadati e semplicemente mando il file video, funziona bene, ma sfortunatamente questo non risolve il mio problema.
Mi manca qualcosa qui, e se non è possibile farlo senza scomporre libcurl?