You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Swap `linux-x64` for `win-x64` or `osx-arm64` to target other platforms. The GitHub Actions workflow (`.github/workflows/ci.yml`) already runs these publishes and uploads zipped artifacts on every build.
532
+
498
533
## 🎯 Advanced Usage Patterns
499
534
500
535
### Custom Format Converters
@@ -833,15 +868,18 @@ The `AzureIntelligenceOptions`, `GoogleIntelligenceOptions`, and `AwsIntelligenc
-**Managed identity**: omit the `ApiKey`/`ArmAccessToken` properties and the providers automatically fall back to `DefaultAzureCredential`. Assign the managed identity the *Cognitive Services User* role for Document Intelligence and Vision, and follow the [Video Indexer managed identity instructions](https://learn.microsoft.com/azure/azure-video-indexer/video-indexer-use-azure-ad) to authorize uploads.
882
+
-**Video Indexer tips**: Video uploads require both the Video Indexer account (ID + region) and either the full resource ID or the trio of subscription id/resource group/account name, plus an ARM token or Azure AD identity with `Contributor` access on the Video Indexer resource. The interactive CLI exposes dedicated prompts for these values under “Configure cloud providers”.
845
883
846
884
```csharp
847
885
varazureOptions=newAzureIntelligenceOptions
@@ -857,6 +895,7 @@ The `AzureIntelligenceOptions`, `GoogleIntelligenceOptions`, and `AwsIntelligenc
857
895
Media=newAzureMediaIntelligenceOptions
858
896
{
859
897
AccountId="<video-indexer-account-id>",
898
+
AccountName="<video-indexer-account-name>",
860
899
Location="trial"
861
900
}
862
901
};
@@ -925,6 +964,23 @@ The `AzureIntelligenceOptions`, `GoogleIntelligenceOptions`, and `AwsIntelligenc
925
964
926
965
-**IAM roles / AWS managed identity**: leave the credential fields null to use the default AWS credential chain (environment variables, shared credentials file, EC2/ECS/EKS IAM roles, or AWS SSO). Ensure the execution role has permissions for `textract:AnalyzeDocument`, `rekognition:DetectLabels`, `rekognition:DetectText`, `transcribe:StartTranscriptionJob`, and S3 access for the specified buckets.
927
966
967
+
#### YouTube metadata & captions
968
+
969
+
-**Docs**: [YoutubeExplode](https://github.com/Tyrrrz/YoutubeExplode) (used under the hood).
970
+
-**Out of the box**: `YouTubeUrlConverter` now enriches Markdown with title, channel, stats, thumbnails, and (when available) auto-generated captions laid out as timecoded segments.
971
+
-**Custom provider**: supply `MarkItDownOptions.YouTubeMetadataProvider` to disable network access, inject caching, or swap to an alternative implementation.
// You can plug in a stub or caching decorator instead:
978
+
// YouTubeMetadataProvider = new MyCachedYouTubeProvider(inner: new YoutubeExplodeMetadataProvider())
979
+
};
980
+
```
981
+
982
+
When a provider returns `null` the converter falls back to URL-derived metadata, so YouTube support remains fully optional.
983
+
928
984
For LLM-style post-processing, assign `MarkItDownOptions.AiModels` with an `IAiModelProvider`. The built-in `StaticAiModelProvider` accepts `Microsoft.Extensions.AI` clients (chat models, speech-to-text, etc.), enabling you to share application-wide model builders.
0 commit comments