An idiomatic C++ client library for video services, including:
Live Stream API, a service to transcode live, linear video streams into a variety of formats.
Transcoder API, a service to convert video files into formats suitable for consumer distribution.
Video Stitcher API, a service to generate dynamic content for delivery to client devices. Call the Video Stitcher API from your servers to dynamically insert ads into video-on-demand and live streams for your users.
While this library isGA, please note Google Cloud C++ client libraries donotfollowSemantic Versioning.
Quickstart
The following shows the code that you'll run in thegoogle/cloud/video/quickstart/directory, which should give you a taste of the video services C++ client library.
This library offers multiple*Clientclasses, which are listed below. Each one of these classes exposes all the RPCs for a service as member functions of the class. This library groups multiple services because they are part of the same product or are often used together. A typical example may be the administrative and data plane operations for a single product.
The library also has other classes that provide helpers, configuration parameters, and infrastructure to mock the*Clientclasses when testing your application.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis webpage provides documentation for the Video Services C++ client library, which includes APIs for Live Stream, Transcoder, and Video Stitcher.\u003c/p\u003e\n"],["\u003cp\u003eThe library offers client classes like \u003ccode\u003eLivestreamServiceClient\u003c/code\u003e, \u003ccode\u003eVideoStitcherServiceClient\u003c/code\u003e, and \u003ccode\u003eTranscoderServiceClient\u003c/code\u003e for interacting with each corresponding service.\u003c/p\u003e\n"],["\u003cp\u003eThe most current version of the C++ client library is version 2.37.0-rc, however, it does not follow semantic versioning, and the listed version on the page is 2.26.0.\u003c/p\u003e\n"],["\u003cp\u003eThe library includes a quickstart guide with code to use the \u003ccode\u003eTranscoderServiceClient\u003c/code\u003e to list jobs, providing an example of how to interact with the service, as well as detailed guides on error handling, overriding the endpoint, authentication, retry, and environment variable configurations.\u003c/p\u003e\n"]]],[],null,["Version 2.26.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/video/latest)\n- [2.41.0](/cpp/docs/reference/video/2.41.0)\n- [2.40.0](/cpp/docs/reference/video/2.40.0)\n- [2.39.0](/cpp/docs/reference/video/2.39.0)\n- [2.38.0](/cpp/docs/reference/video/2.38.0)\n- [2.37.0](/cpp/docs/reference/video/2.37.0)\n- [2.36.0](/cpp/docs/reference/video/2.36.0)\n- [2.35.0](/cpp/docs/reference/video/2.35.0)\n- [2.34.0](/cpp/docs/reference/video/2.34.0)\n- [2.33.0](/cpp/docs/reference/video/2.33.0)\n- [2.32.0](/cpp/docs/reference/video/2.32.0)\n- [2.31.0](/cpp/docs/reference/video/2.31.0)\n- [2.30.0](/cpp/docs/reference/video/2.30.0)\n- [2.29.0](/cpp/docs/reference/video/2.29.0)\n- [2.28.0](/cpp/docs/reference/video/2.28.0)\n- [2.27.0](/cpp/docs/reference/video/2.27.0)\n- [2.26.0](/cpp/docs/reference/video/2.26.0)\n- [2.25.1](/cpp/docs/reference/video/2.25.1)\n- [2.24.0](/cpp/docs/reference/video/2.24.0)\n- [2.23.0](/cpp/docs/reference/video/2.23.0)\n- [2.22.1](/cpp/docs/reference/video/2.22.1)\n- [2.21.0](/cpp/docs/reference/video/2.21.0)\n- [2.20.0](/cpp/docs/reference/video/2.20.0)\n- [2.19.0](/cpp/docs/reference/video/2.19.0)\n- [2.18.0](/cpp/docs/reference/video/2.18.0)\n- [2.17.0](/cpp/docs/reference/video/2.17.0)\n- [2.16.0](/cpp/docs/reference/video/2.16.0)\n- [2.15.1](/cpp/docs/reference/video/2.15.1)\n- [2.14.0](/cpp/docs/reference/video/2.14.0)\n- [2.13.0](/cpp/docs/reference/video/2.13.0)\n- [2.12.0](/cpp/docs/reference/video/2.12.0)\n- [2.11.0](/cpp/docs/reference/video/2.11.0) \n\nVideo Services C++ Client Library\n=================================\n\nAn idiomatic C++ client library for video services, including:\n\n- [Live Stream API](https://cloud.google.com/livestream), a service to transcode live, linear video streams into a variety of formats.\n- [Transcoder API](https://cloud.google.com/transcoder), a service to convert video files into formats suitable for consumer distribution.\n- [Video Stitcher API](https://cloud.google.com/video-stitcher), a service to generate dynamic content for delivery to client devices. Call the Video Stitcher API from your servers to dynamically insert ads into video-on-demand and live streams for your users.\n\nWhile this library is **GA** , please note Google Cloud C++ client libraries do **not** follow [Semantic Versioning](https://semver.org/).\n\n### Quickstart\n\nThe following shows the code that you'll run in the `google/cloud/video/quickstart/` directory, which should give you a taste of the video services C++ client library. \n\n #include \"google/cloud/video/transcoder/v1/transcoder_client.h\"\n #include \"google/cloud/location.h\"\n #include \u003ciostream\u003e\n\n int main(int argc, char* argv[]) try {\n if (argc != 3) {\n std::cerr \u003c\u003c \"Usage: \" \u003c\u003c argv[0] \u003c\u003c \" project-id location-id\\n\";\n return 1;\n }\n\n auto const location = google::cloud::Location(argv[1], argv[2]);\n\n namespace transcoder = ::google::cloud::video_transcoder_v1;\n auto client = transcoder::TranscoderServiceClient(\n transcoder::MakeTranscoderServiceConnection());\n\n for (auto j : client.ListJobs(location.FullName())) {\n if (!j) throw std::move(j).status();\n std::cout \u003c\u003c j-\u003eDebugString() \u003c\u003c \"\\n\";\n }\n\n return 0;\n } catch (google::cloud::Status const& status) {\n std::cerr \u003c\u003c \"google::cloud::Status thrown: \" \u003c\u003c status \u003c\u003c \"\\n\";\n return 1;\n }\n\n### Main classes\n\nThis library offers multiple `*Client` classes, which are listed below. Each one of these classes exposes all the RPCs for a service as member functions of the class. This library groups multiple services because they are part of the same product or are often used together. A typical example may be the administrative and data plane operations for a single product.\n\nThe library also has other classes that provide helpers, configuration parameters, and infrastructure to mock the `*Client` classes when testing your application.\n\n- [`video_livestream_v1::LivestreamServiceClient`](/cpp/docs/reference/video/2.26.0/classgoogle_1_1cloud_1_1video__livestream__v1_1_1LivestreamServiceClient)\n- [`video_stitcher_v1::VideoStitcherServiceClient`](/cpp/docs/reference/video/2.26.0/classgoogle_1_1cloud_1_1video__stitcher__v1_1_1VideoStitcherServiceClient)\n- [`video_transcoder_v1::TranscoderServiceClient`](/cpp/docs/reference/video/2.26.0/classgoogle_1_1cloud_1_1video__transcoder__v1_1_1TranscoderServiceClient)\n\n### More Information\n\n- [Error Handling](https://cloud.google.com/cpp/docs/reference/common/latest/common-error-handling.html) - describes how the library reports errors.\n- [How to Override the Default Endpoint](/cpp/docs/reference/video/2.26.0/video-override-endpoint) - describes how to override the default endpoint.\n- [How to Override the Authentication Credentials](/cpp/docs/reference/video/2.26.0/video-override-authentication) - describes how to change the authentication credentials used by the library.\n- [Override Retry, Backoff, and Idempotency Policies](/cpp/docs/reference/video/2.26.0/video-override-retry) - describes how to change the default retry policies.\n- [Environment Variables](/cpp/docs/reference/video/2.26.0/video-env) - describes environment variables that can configure the behavior of the library."]]