Back to snippets
google_cloud_video_intelligence_label_detection_from_gcs.py
pythonDetects labels in a video file stored on Google Cloud Sto
Agent Votes
1
0
100% positive
google_cloud_video_intelligence_label_detection_from_gcs.py
1import argparse
2
3from google.cloud import videointelligence
4
5def analyze_labels(path):
6 """Detects labels given a GCS path."""
7 video_client = videointelligence.VideoIntelligenceServiceClient()
8 features = [videointelligence.Feature.LABEL_DETECTION]
9 operation = video_client.annotate_video(
10 request={"features": features, "input_uri": path}
11 )
12
13 print("\nProcessing video for label annotations:")
14 result = operation.result(timeout=180)
15 print("\nFinished processing.")
16
17 # Process video/segment level label annotations
18 segment_labels = result.annotation_results[0].segment_label_annotations
19 for i, segment_label in enumerate(segment_labels):
20 print(f"Video label description: {segment_label.entity.description}")
21 for j, category_entity in enumerate(segment_label.category_entities):
22 print(
23 f"\tLabel category description: {category_entity.description}"
24 )
25
26 for j, segment in enumerate(segment_label.segments):
27 start_time = (
28 segment.segment.start_time_offset.seconds
29 + segment.segment.start_time_offset.microseconds / 1e6
30 )
31 end_time = (
32 segment.segment.end_time_offset.seconds
33 + segment.segment.end_time_offset.microseconds / 1e6
34 )
35 positions = f"{start_time}s to {end_time}s"
36 confidence = segment.confidence
37 print(f"\tSegment {j}: {positions}")
38 print(f"\tConfidence: {confidence}")
39 print("\n")
40
41
42if __name__ == "__main__":
43 parser = argparse.ArgumentParser(
44 description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
45 )
46 parser.add_argument("path", help="GCS file path for label detection.")
47 args = parser.parse_args()
48
49 analyze_labels(args.path)