Spaces:
Runtime error
Runtime error
| import requests | |
| index_counter = 0 # Global counter for video indexes | |
| def videoAnalysis(sas_token, sas_url, search): | |
| global index_counter # Access the global counter variable | |
| index_counter += 1 | |
| index_name = f"video-index-{index_counter}" | |
| url = f"https://explosion.cognitiveservices.azure.com/computervision/retrieval/indexes/{index_name}?api-version=2023-05-01-preview" | |
| headers = { | |
| "Ocp-Apim-Subscription-Key": "c54eec632ae5413e8075e3f825727822", | |
| "Content-Type": "application/json" | |
| } | |
| data = { | |
| "metadataSchema": { | |
| "fields": [ | |
| { | |
| "name": "cameraId", | |
| "searchable": False, | |
| "filterable": True, | |
| "type": "string" | |
| }, | |
| { | |
| "name": "timestamp", | |
| "searchable": False, | |
| "filterable": True, | |
| "type": "datetime" | |
| } | |
| ] | |
| }, | |
| "features": [ | |
| { | |
| "name": "vision", | |
| "domain": "surveillance" | |
| }, | |
| { | |
| "name": "speech" | |
| } | |
| ] | |
| } | |
| response = requests.put(url, json=data, headers=headers) | |
| #test code for errors | |
| print("Response Status Code:", response.status_code) | |
| print("Response Content:", response.text) | |
| url_index = f"https://explosion.cognitiveservices.azure.com/computervision/retrieval/indexes/{index_name}/ingestions/my-ingestion?api-version=2023-05-01-preview" | |
| headers = { | |
| "Ocp-Apim-Subscription-Key": "c54eec632ae5413e8075e3f825727822", | |
| "Content-Type": "application/json" | |
| } | |
| data_index = { | |
| "videos": [ | |
| { | |
| "mode": "add", | |
| "documentId": sas_token, | |
| "documentUrl": sas_url, | |
| "metadata": { | |
| "cameraId": "camera1", | |
| "timestamp": "2024-02-09 00:02:14" | |
| } | |
| } | |
| ] | |
| } | |
| response_index = requests.put(url_index, json=data_index, headers=headers) | |
| #test code for errors | |
| print("Index Ingestion - Response Status Code:", response_index.status_code) | |
| print("Index Ingestion - Response Content:", response_index.text) | |
| # Assuming you want to ingest another video with a different ingestion name | |
| url_new_ingestion = f"https://explosion.cognitiveservices.azure.com/computervision/retrieval/indexes/{index_name}/ingestions/new-ingestion?api-version=2023-05-01-preview" | |
| data_new_ingestion = { | |
| "videos": [ | |
| { | |
| "mode": "add", | |
| "documentId": "new_document_id", | |
| "documentUrl": "https://example.blob.core.windows.net/videos/new_video.mp4?sas_token_here", | |
| "metadata": { | |
| "cameraId": "camera3" | |
| } | |
| } | |
| ] | |
| } | |
| response_new_ingestion = requests.put(url_new_ingestion, json=data_new_ingestion, headers=headers) | |
| #used to test code for errors | |
| print("New Ingestion - Response Status Code:", response_new_ingestion.status_code) | |
| print("New Ingestion - Response Content:", response_new_ingestion.text) | |
| url_query = f"https://explosion.cognitiveservices.azure.com/computervision/retrieval/indexes/{index_name}:queryByText?api-version=2023-05-01-preview" | |
| headers = { | |
| "Ocp-Apim-Subscription-Key": "c54eec632ae5413e8075e3f825727822", | |
| "Content-Type": "application/json" | |
| } | |
| data_query = { | |
| "queryText": search, | |
| "filters": { | |
| "stringFilters": [ | |
| { | |
| "fieldName": "cameraId", | |
| "values": [ | |
| "camera1" | |
| ] | |
| } | |
| ], | |
| "featureFilters": ["vision"] | |
| } | |
| } | |
| response_query = requests.post(url_query, json=data_query, headers=headers) | |
| if response_query.text == """{"error":{"code":"InvalidRequest","message":"Value for indexName is invalid."}}""": | |
| videoAnalysis(sas_token,sas_url, search) | |
| else: | |
| return response_query.text | |
| #Enter the sas token | |
| sas_token_1 = "sp=r&st=2024-02-09T12:33:24Z&se=2025-08-06T20:33:24Z&spr=https&sv=2022-11-02&sr=b&sig=V%2Fq56JjGcL60r0vt3oAPjzx%2FZMu5%2BJo%2BfjKkJF2ccgo%3D" | |
| #the sas url | |
| sas_url_1= "https://store1video.blob.core.windows.net/haptic-vid/test_video.mp4?sp=r&st=2024-02-09T12:33:24Z&se=2025-08-06T20:33:24Z&spr=https&sv=2022-11-02&sr=b&sig=V%2Fq56JjGcL60r0vt3oAPjzx%2FZMu5%2BJo%2BfjKkJF2ccgo%3D" | |
| #query of what you are looking for | |
| instance_1 = "Explosion" | |
| #calling the method returns the nested list of the time frames | |
| #test_explosion = videoAnalysis(sas_token_1, sas_url_1, instance_1) | |
| #print(test_explosion) | |
| #Enter the sas token | |
| sas_token_2 = "sp=r&st=2024-03-18T09:48:32Z&se=2026-07-02T17:48:32Z&spr=https&sv=2022-11-02&sr=b&sig=hLiFrDUtrutW9FWWRR7Z0Kbc4wkHs28YR9RXjVxw8uc%3D" | |
| #the sas url | |
| sas_url_2= "https://store1video.blob.core.windows.net/haptic-vid/desert_vehicle_test.mp4?sp=r&st=2024-03-18T09:48:32Z&se=2026-07-02T17:48:32Z&spr=https&sv=2022-11-02&sr=b&sig=hLiFrDUtrutW9FWWRR7Z0Kbc4wkHs28YR9RXjVxw8uc%3D" | |
| #query of what you are looking for | |
| instance_2 = "Vehicle racing" | |
| #calling the method returns the nested list of the time frames | |
| #test_vehicle = videoAnalysis(sas_token_2, sas_url_2, instance_2) | |
| #print(test_vehicle) |