Created
June 4, 2025 15:57
-
-
Save quintonwall/a671504759ee398fe8d6b1aa36562f4e to your computer and use it in GitHub Desktop.
Google Meet Airbyte Connector
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: 6.48.15 | |
type: DeclarativeSource | |
description: Solves https://github.com/airbytehq/airbyte/issues/45995 | |
check: | |
type: CheckStream | |
stream_names: | |
- transcripts | |
definitions: | |
streams: | |
recordings: | |
type: DeclarativeStream | |
name: recordings | |
retriever: | |
type: SimpleRetriever | |
decoder: | |
type: JsonDecoder | |
paginator: | |
type: DefaultPaginator | |
page_token_option: | |
type: RequestOption | |
field_name: pageToken | |
inject_into: request_parameter | |
pagination_strategy: | |
type: CursorPagination | |
cursor_value: "{{ response.get('nextPageToken') }}" | |
stop_condition: "{{ response.get('nextPageToken') is not defined }}" | |
requester: | |
$ref: "#/definitions/base_requester" | |
path: conferenceRecords | |
http_method: GET | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- items | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$ref: "#/schemas/recordings" | |
transcripts: | |
type: DeclarativeStream | |
name: transcripts | |
retriever: | |
type: SimpleRetriever | |
decoder: | |
type: JsonDecoder | |
paginator: | |
type: DefaultPaginator | |
page_token_option: | |
type: RequestOption | |
field_name: pageToken | |
inject_into: request_parameter | |
pagination_strategy: | |
type: CursorPagination | |
cursor_value: "{{ response.get('nextPageToken') }}" | |
stop_condition: "{{ response.get('nextPageToken') is not defined }}" | |
requester: | |
$ref: "#/definitions/base_requester" | |
path: conferenceRecords/{{ config['conferencerecord'] }}/transcripts | |
http_method: GET | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- items | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$ref: "#/schemas/transcripts" | |
base_requester: | |
type: HttpRequester | |
url_base: https://meet.googleapis.com/v2/ | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: "{{ config[\"client_id\"] }}" | |
grant_type: refresh_token | |
client_secret: "{{ config[\"client_secret\"] }}" | |
refresh_token: "{{ config[\"client_refresh_token_2\"] }}" | |
refresh_request_body: {} | |
token_refresh_endpoint: https://oauth2.googleapis.com/token | |
streams: | |
- $ref: "#/definitions/streams/transcripts" | |
- $ref: "#/definitions/streams/recordings" | |
spec: | |
type: Spec | |
connection_specification: | |
type: object | |
$schema: http://json-schema.org/draft-07/schema# | |
required: | |
- client_id | |
- client_secret | |
- client_refresh_token_2 | |
properties: | |
client_id: | |
type: string | |
order: 0 | |
title: Client ID | |
airbyte_secret: true | |
client_secret: | |
type: string | |
order: 1 | |
title: Client secret | |
airbyte_secret: true | |
conferencerecord: | |
type: string | |
order: 3 | |
title: Conference Record | |
client_refresh_token_2: | |
type: string | |
order: 2 | |
title: Refresh token | |
airbyte_secret: true | |
additionalProperties: true | |
metadata: | |
assist: | |
docsUrl: https://developers.google.com/calendar/api/v3/reference | |
testedStreams: | |
recordings: | |
hasRecords: false | |
streamHash: 79a735cad388f0dc015bf233b0cdde61b71765b6 | |
hasResponse: true | |
primaryKeysAreUnique: true | |
primaryKeysArePresent: true | |
responsesAreSuccessful: true | |
transcripts: | |
hasRecords: false | |
streamHash: 123a3af9c7dd1e8b527d4eb04f1760f763f74ce2 | |
hasResponse: true | |
primaryKeysAreUnique: true | |
primaryKeysArePresent: true | |
responsesAreSuccessful: false | |
autoImportSchema: | |
recordings: true | |
transcripts: true | |
schemas: | |
recordings: | |
type: object | |
$schema: http://json-schema.org/draft-07/schema# | |
properties: {} | |
additionalProperties: true | |
transcripts: | |
type: object | |
$schema: http://json-schema.org/schema# | |
required: | |
- id | |
properties: | |
id: | |
type: string | |
end: | |
type: | |
- object | |
- "null" | |
properties: | |
dateTime: | |
type: | |
- string | |
- "null" | |
timeZone: | |
type: | |
- string | |
- "null" | |
etag: | |
type: | |
- string | |
- "null" | |
kind: | |
type: | |
- string | |
- "null" | |
start: | |
type: | |
- object | |
- "null" | |
properties: | |
dateTime: | |
type: | |
- string | |
- "null" | |
timeZone: | |
type: | |
- string | |
- "null" | |
status: | |
type: | |
- string | |
- "null" | |
created: | |
type: | |
- string | |
- "null" | |
creator: | |
type: | |
- object | |
- "null" | |
properties: | |
self: | |
type: | |
- boolean | |
- "null" | |
email: | |
type: | |
- string | |
- "null" | |
iCalUID: | |
type: | |
- string | |
- "null" | |
summary: | |
type: | |
- string | |
- "null" | |
updated: | |
type: | |
- string | |
- "null" | |
htmlLink: | |
type: | |
- string | |
- "null" | |
sequence: | |
type: | |
- number | |
- "null" | |
attendees: | |
type: | |
- array | |
- "null" | |
items: | |
type: | |
- object | |
- "null" | |
properties: | |
self: | |
type: | |
- boolean | |
- "null" | |
email: | |
type: | |
- string | |
- "null" | |
organizer: | |
type: | |
- boolean | |
- "null" | |
responseStatus: | |
type: | |
- string | |
- "null" | |
eventType: | |
type: | |
- string | |
- "null" | |
organizer: | |
type: | |
- object | |
- "null" | |
properties: | |
self: | |
type: | |
- boolean | |
- "null" | |
email: | |
type: | |
- string | |
- "null" | |
reminders: | |
type: | |
- object | |
- "null" | |
properties: | |
overrides: | |
type: | |
- array | |
- "null" | |
items: | |
type: | |
- object | |
- "null" | |
properties: | |
method: | |
type: | |
- string | |
- "null" | |
minutes: | |
type: | |
- number | |
- "null" | |
useDefault: | |
type: | |
- boolean | |
- "null" | |
hangoutLink: | |
type: | |
- string | |
- "null" | |
conferenceData: | |
type: | |
- object | |
- "null" | |
properties: | |
entryPoints: | |
type: | |
- array | |
- "null" | |
items: | |
type: | |
- object | |
- "null" | |
properties: | |
uri: | |
type: | |
- string | |
- "null" | |
label: | |
type: | |
- string | |
- "null" | |
entryPointType: | |
type: | |
- string | |
- "null" | |
conferenceId: | |
type: | |
- string | |
- "null" | |
conferenceSolution: | |
type: | |
- object | |
- "null" | |
properties: | |
key: | |
type: | |
- object | |
- "null" | |
properties: | |
type: | |
type: | |
- string | |
- "null" | |
name: | |
type: | |
- string | |
- "null" | |
iconUri: | |
type: | |
- string | |
- "null" | |
guestsCanModify: | |
type: | |
- boolean | |
- "null" | |
additionalProperties: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment