{"id":14353,"date":"2022-08-09T15:32:47","date_gmt":"2022-08-09T18:32:47","guid":{"rendered":"https:\/\/jmvstream.com\/upload-de-videos\/"},"modified":"2022-08-09T16:09:03","modified_gmt":"2022-08-09T19:09:03","slug":"upload-de-videos","status":"publish","type":"post","link":"https:\/\/jmvstream.com\/es\/developer-es\/upload-de-videos\/","title":{"rendered":"Upload de V\u00eddeos"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]La carga de videos se inicia a trav\u00e9s de una solicitud POST en la ruta &lt;code&gt;\/v1\/videos&lt;\/code&gt; Esta ruta solo se utilizar\u00e1 para crear la carga, y no para la carga en s\u00ed. A partir de la llamada de esta ruta, se devolver\u00e1n datos en los ENCABEZADOS de la respuesta que se utilizar\u00e1n para realizar la subida.<\/p>\n<p>La carga en s\u00ed se realizar\u00e1 a trav\u00e9s de la ruta \/v1\/videos\/uploads\/:id<\/p>\n<p>Actualmente, la API no acepta m\u00e1s de una carga a la vez.[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;30px&#8221;][vc_column][vc_column_text]<\/p>\n<h1 style=\"text-align: center;\">Subir creaci\u00f3n &#8211; POST<\/h1>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Route<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">M\u00e9todo<\/th>\n<th scope=\"col\">Ruta<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>POST<\/td>\n<td><code>\/v1\/videos<\/code><\/td>\n<td>Ruta para crear la subida.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][vc_column_text]* Token generado por la ruta de <a href=\"\/es\/developer\/comezando\/autenticacion\/\" target=\"_blank\" rel=\"noopener\">autenticaci\u00f3n<\/a>[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Headers<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table>\n<thead>\n<tr>\n<th scope=\"col\">Param<\/th>\n<th scope=\"col\">Escribe<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<th scope=\"col\">Obligatorio<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tus-Resumable<\/td>\n<td><code>String<\/code><\/td>\n<td>Versi\u00f3n del protocolo TUS. Enviar siempre 1.0.0<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Upload-Length<\/td>\n<td><code>Number<\/code><\/td>\n<td>Tama\u00f1o del archivo a subir (En bytes).<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Upload-Metadata<\/td>\n<td><code>String<\/code><\/td>\n<td>&#8220;filename&#8221; seguido del nombre de archivo base64.<br \/>\nEx.: Nombre del archivo: test_converted=&gt; Upload-Metadata: filename dGVzdGUubXA0.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Content-Type<\/td>\n<td><code>String<\/code><\/td>\n<td>application\/json<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>galer\u00eda<\/td>\n<td><code>String<\/code><\/td>\n<td>Uuid de la galer\u00eda que se subir\u00e1 m\u00e1s tarde.<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>Autorizaci\u00f3n<\/td>\n<td><code>String<\/code><\/td>\n<td>Autorizaci\u00f3n de tokens.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;individually&#8221; row_margin_bottom=&#8221;10px&#8221;][vc_column][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h2>Response<\/h2>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Respuesta al realizar una carga (Estado: 201)[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">Name<\/th>\n<th scope=\"col\">Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>X-Powered-By<\/td>\n<td>Express<\/td>\n<\/tr>\n<tr>\n<td>Tus-Resumable<\/td>\n<td>1.0.0<\/td>\n<\/tr>\n<tr>\n<td>Access-Control-Expose-Headers<\/td>\n<td>Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With<\/td>\n<\/tr>\n<tr>\n<td>Location<\/td>\n<td>\/\/localhost:15214\/v1\/videos\/uploads\/410b471ac3ed2ee0f8856e7aa4358ba4<\/td>\n<\/tr>\n<tr>\n<td>Content-Length<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>Date<\/td>\n<td>Tue, 21 Jun 2022 13:09:10 GMT<\/td>\n<\/tr>\n<tr>\n<td>Connection<\/td>\n<td>keep-alive<\/td>\n<\/tr>\n<tr>\n<td>Keep-Alive<\/td>\n<td>timeout=5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Respuesta de error al no enviar el campo requerido o el campo en formato incorrecto (Estado: 400)[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n   \"error\": \"Bad Request\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Respuesta de error al intentar realizar m\u00e1s de una carga a la vez por aplicaci\u00f3n (Estado: 429)[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n   \"error\": \"Too many simultaneous uploads, please send one file at a time\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Respuesta de error debido a alg\u00fan error interno (Estado: 500)[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n  \"error\": \"Internal Server Error\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;30px&#8221;][vc_column][vc_column_text]<\/p>\n<h1 style=\"text-align: center;\">Upload &#8211; PATCH<\/h1>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Route<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">M\u00e9todo<\/th>\n<th scope=\"col\">Ruta<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PATCH<\/td>\n<td><code>\/v1\/videos\/uploads\/:id<\/code><\/td>\n<td>Ruta para cargar.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][vc_column_text]<strong>NOTA:<\/strong> En esta petici\u00f3n se debe pasar el v\u00eddeo que se especifica en Upload-Metadata en su forma binaria. Como ejemplo, en Insomnia, ser\u00eda seleccionar la opci\u00f3n &#8216;archivo&#8217;, y luego seleccionar la opci\u00f3n &#8216;Archivo binario&#8217;, y luego seleccionar el archivo deseado.[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Headers<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">Param<\/th>\n<th scope=\"col\">Escribe<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<th scope=\"col\">Obligatorio<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tus-Resumable<\/td>\n<td><code>String<\/code><\/td>\n<td>Versi\u00f3n del protocolo TUS. Enviar siempre 1.0.0<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Content-Length<\/td>\n<td><code>Number<\/code><\/td>\n<td>Cantidad en bytes que falta por subir.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Upload-Offset<\/td>\n<td><code>Number<\/code><\/td>\n<td>Byte inicial para la carga (Si es la primera solicitud, debe comenzar con 0, si la carga se ha interrumpido, la carga debe continuar donde se detuvo, esta informaci\u00f3n la proporciona el par\u00e1metro Upload-Offset devuelto en HEAD \/ v1\/videos\/subidas\/:id).<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Upload-Metadata<\/td>\n<td><code>String<\/code><\/td>\n<td>&#8220;filename&#8221; seguido del nombre del archivo en base64. Ej.: Nombre de archivo: test_converted=&gt; Upload-Metadata: filename dGVzdGUubXA0.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Content-Type<\/td>\n<td><code>String<\/code><\/td>\n<td>application\/offset+octet-stream<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>galer\u00eda<\/td>\n<td><code>String<\/code><\/td>\n<td>Uuid de la galer\u00eda que se subir\u00e1 m\u00e1s tarde.<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>Autorizaci\u00f3n<\/td>\n<td><code>String<\/code><\/td>\n<td>Autorizaci\u00f3n de tokens.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;individually&#8221; row_margin_bottom=&#8221;10px&#8221;][vc_column][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h2>Response<\/h2>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h4>&#8211; Encabezado de la respuesta al realizar una carga (Estado: 201)<\/h4>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">Name<\/th>\n<th scope=\"col\">Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>X-Powered-By<\/td>\n<td>Express<\/td>\n<\/tr>\n<tr>\n<td>Tus-Resumable<\/td>\n<td>1.0.0<\/td>\n<\/tr>\n<tr>\n<td>Access-Control-Expose-Headers<\/td>\n<td>Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With<\/td>\n<\/tr>\n<tr>\n<td>Location<\/td>\n<td>\/\/localhost:15214\/v1\/videos\/uploads\/410b471ac3ed2ee0f8856e7aa4358ba4<\/td>\n<\/tr>\n<tr>\n<td>Content-Length<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>Date<\/td>\n<td>Tue, 21 Jun 2022 13:09:10 GMT<\/td>\n<\/tr>\n<tr>\n<td>Connection<\/td>\n<td>keep-alive<\/td>\n<\/tr>\n<tr>\n<td>Keep-Alive<\/td>\n<td>timeout=5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h4>&#8211; Respuesta de error cuando los metadatos de carga no se env\u00edan correctamente (Estado: 400)<\/h4>\n<p>[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n    \"error\": \"Bad Request\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h4>&#8211; Respuesta de error al intentar realizar m\u00e1s de una carga a la vez por aplicaci\u00f3n (Estado: 429)<\/h4>\n<p>[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n    \"error\": \"Too many simultaneous uploads, please send one file at a time\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h4>&#8211; Respuesta de error debido a alg\u00fan error interno (Estado: 500)<\/h4>\n<p>[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n  \"error\": \"Internal Server Error\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;30px&#8221;][vc_column][vc_column_text]<\/p>\n<h1 style=\"text-align: center;\">Devuelve la informaci\u00f3n de la carga &#8211; HEAD<\/h1>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Route<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">M\u00e9todo<\/th>\n<th scope=\"col\">Ruta<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PATCH<\/td>\n<td><code>\/v1\/videos\/uploads\/:id<\/code><\/td>\n<td>Ruta para cargar.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;top_bottom&#8221; row_margin_top_bottom=&#8221;15px&#8221;][vc_column][vc_column_text]<\/p>\n<h2>Headers<\/h2>\n<p>[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">Param<\/th>\n<th scope=\"col\">Escribe<\/th>\n<th scope=\"col\">Descripci\u00f3n<\/th>\n<th scope=\"col\">Obligatorio<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Autorizaci\u00f3n<\/td>\n<td><code>String<\/code><\/td>\n<td>Autorizaci\u00f3n de tokens.<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>Tus-Resumable<\/td>\n<td><code>String<\/code><\/td>\n<td>Versi\u00f3n del protocolo TUS. Enviar siempre 1.0.0<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column][\/vc_row][vc_row apply_row_margin=&#8221;individually&#8221; row_margin_bottom=&#8221;10px&#8221;][vc_column][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<h2>Response<\/h2>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]<strong>Nota:<\/strong> El par\u00e1metro Upload_Offset devuelto indica cu\u00e1ntos bytes ya fueron enviados, cuando Upload-Offset es igual a Upload-length, la carga fue concluida.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Encabezado de la respuesta al realizar una carga (Estado: 201)[\/vc_column_text][inova_raw_html]<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th scope=\"col\">Name<\/th>\n<th scope=\"col\">Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>X-Powered-By<\/td>\n<td>Express<\/td>\n<\/tr>\n<tr>\n<td>Tus-Resumable<\/td>\n<td>1.0.0<\/td>\n<\/tr>\n<tr>\n<td>Access-Control-Expose-Headers<\/td>\n<td>Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With<\/td>\n<\/tr>\n<tr>\n<td>Location<\/td>\n<td>\/\/localhost:15214\/v1\/videos\/uploads\/410b471ac3ed2ee0f8856e7aa4358ba4<\/td>\n<\/tr>\n<tr>\n<td>Content-Length<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>Date<\/td>\n<td>Tue, 21 Jun 2022 13:09:10 GMT<\/td>\n<\/tr>\n<tr>\n<td>Connection<\/td>\n<td>keep-alive<\/td>\n<\/tr>\n<tr>\n<td>Keep-Alive<\/td>\n<td>timeout=5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/inova_raw_html][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner][vc_column_text]- Respuesta de error debido a alg\u00fan error interno (Estado: 500)[\/vc_column_text][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\">{\r\n  \"error\": \"Internal Server Error\"\r\n}<\/pre>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text]La carga de videos se inicia a trav\u00e9s de una solicitud POST en la ruta<\/p>\n","protected":false},"author":39,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"documentation.php","format":"standard","meta":{"footnotes":""},"categories":[424,428],"tags":[],"class_list":["post-14353","post","type-post","status-publish","format-standard","hentry","category-developer-es","category-videos-es"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/posts\/14353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/comments?post=14353"}],"version-history":[{"count":0,"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/posts\/14353\/revisions"}],"wp:attachment":[{"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/media?parent=14353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/categories?post=14353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jmvstream.com\/es\/wp-json\/wp\/v2\/tags?post=14353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}