public static MediaPublished PublishInsight(MediaPublish insightPublish) { string accountId = insightPublish.PartitionKey; string indexId = insightPublish.RowKey; IndexerClient indexerClient = new IndexerClient(accountId, insightPublish.MediaAccount.IndexerKey); JObject index = indexerClient.GetIndex(indexId, null, false); MediaPublished mediaPublished = null; string assetId = IndexerClient.GetAssetId(index); if (!string.IsNullOrEmpty(assetId)) { MediaClient mediaClient = new MediaClient(insightPublish.MediaAccount); IAsset asset = mediaClient.GetEntityById(MediaEntity.Asset, assetId) as IAsset; DocumentClient documentClient = new DocumentClient(); index = DocumentClient.SetContext(index, insightPublish.MediaAccount, assetId); string documentId = UpsertDocument(documentClient, index, MediaProcessor.VideoIndexer, asset, null); mediaPublished = new MediaPublished { AssetId = assetId, IndexId = indexId, DocumentId = documentId, UserId = insightPublish.UserId, MobileNumber = insightPublish.MobileNumber, StatusMessage = string.Empty }; } return(mediaPublished); }
private static MediaTrack[] GetTextTracks(MediaClient mediaClient, IndexerClient indexerClient, IAsset asset) { List <MediaTrack> textTracks = new List <MediaTrack>(); WebClient webClient = new WebClient(); string documentId = DocumentClient.GetDocumentId(asset, out bool videoIndexer); if (!string.IsNullOrEmpty(documentId) && videoIndexer && indexerClient.IndexerEnabled) { string webVttUrl = indexerClient.GetWebVttUrl(documentId, null); HttpRequestMessage requestMessage = webClient.GetRequest(HttpMethod.Get, webVttUrl); string webVttData = webClient.GetResponse <string>(requestMessage); JObject index = indexerClient.GetIndex(documentId, null, false); string languageLabel = IndexerClient.GetLanguageLabel(index); MediaTrack textTrack = new MediaTrack() { Type = GetTextTrackType(webVttData), Label = languageLabel, SourceUrl = webVttUrl, }; textTracks.Add(textTrack); } string[] webVttUrls = mediaClient.GetWebVttUrls(asset); for (int i = 0; i < webVttUrls.Length; i++) { string webVttUrl = webVttUrls[i]; HttpRequestMessage requestMessage = webClient.GetRequest(HttpMethod.Get, webVttUrl); string webVttData = webClient.GetResponse <string>(requestMessage); string languageLabel = Language.GetLanguageLabel(webVttUrl); if (!string.IsNullOrEmpty(webVttUrl)) { MediaTrack textTrack = new MediaTrack() { Type = GetTextTrackType(webVttData), Label = languageLabel, SourceUrl = webVttUrl, }; textTracks.Add(textTrack); } } return(textTracks.ToArray()); }