diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2020-11-08 11:32:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-08 11:32:53 +0100 |
| commit | 96dcd9c87e2eb4b14004368856949e9fde2db261 (patch) | |
| tree | 507b46f6a5777dd218dea1f7a63f1a55b1f38b9f /Jellyfin.Api/Controllers/SubtitleController.cs | |
| parent | 61f8e5f3c1df4f97bfcf219c622347bb2d74a17c (diff) | |
| parent | 38185f832688a3329045ee1bb26a38445c7777b2 (diff) | |
Merge pull request #3086 from redSpoutnik/api-upload-subtitle
Add Post subtitle in API
Diffstat (limited to 'Jellyfin.Api/Controllers/SubtitleController.cs')
| -rw-r--r-- | Jellyfin.Api/Controllers/SubtitleController.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Jellyfin.Api/Controllers/SubtitleController.cs b/Jellyfin.Api/Controllers/SubtitleController.cs index cc682ed54..b423f1ee8 100644 --- a/Jellyfin.Api/Controllers/SubtitleController.cs +++ b/Jellyfin.Api/Controllers/SubtitleController.cs @@ -11,6 +11,7 @@ using System.Threading; using System.Threading.Tasks; using Jellyfin.Api.Attributes; using Jellyfin.Api.Constants; +using Jellyfin.Api.Models.SubtitleDtos; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.MediaEncoding; @@ -320,6 +321,33 @@ namespace Jellyfin.Api.Controllers } /// <summary> + /// Upload an external subtitle file. + /// </summary> + /// <param name="itemId">The item the subtitle belongs to.</param> + /// <param name="body">The request body.</param> + /// <response code="204">Subtitle uploaded.</response> + /// <returns>A <see cref="NoContentResult"/>.</returns> + [HttpPost("Videos/{itemId}/Subtitles")] + public async Task<ActionResult> UploadSubtitle( + [FromRoute, Required] Guid itemId, + [FromBody, Required] UploadSubtitleDto body) + { + var video = (Video)_libraryManager.GetItemById(itemId); + var data = Convert.FromBase64String(body.Data); + await using var memoryStream = new MemoryStream(data); + await _subtitleManager.UploadSubtitle( + video, + new SubtitleResponse + { + Format = body.Format, + Language = body.Language, + IsForced = body.IsForced, + Stream = memoryStream + }).ConfigureAwait(false); + return NoContent(); + } + + /// <summary> /// Encodes a subtitle in the specified format. /// </summary> /// <param name="id">The media id.</param> |
