|
|
--- |
|
|
title: CaptionEditor |
|
|
emoji: ๐ |
|
|
colorFrom: blue |
|
|
colorTo: red |
|
|
sdk: gradio |
|
|
sdk_version: 5.49.1 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
hf_oauth: true |
|
|
--- |
|
|
|
|
|
# Database structure |
|
|
2 main endpoints: Videos and video_captions. |
|
|
|
|
|
### videos |
|
|
Contains a json object with YouTube links to the videos and |
|
|
a boolean for whether the captions for that video are complete. |
|
|
|
|
|
Example entry: |
|
|
``` |
|
|
0: |
|
|
url: "https://www.youtube.com/watch?v=tkMg8g8vVUo" |
|
|
complete: true |
|
|
``` |
|
|
|
|
|
Keys are `integers`. |
|
|
They define the order in which the videos show up on the page. |
|
|
Videos for which the captions are complete will be skipped. |
|
|
|
|
|
Values are json objects with `url` and `complete` keys. All keys are mandatory. |
|
|
`url`s are video link `strings`. |
|
|
Format is flexible, can optionally include `https://` or a query string. |
|
|
|
|
|
`complete`s are booleans. |
|
|
|
|
|
`url` is read-only, `complete` is writable. |
|
|
Editing/uploading new entries requires changing access rules. |
|
|
|
|
|
### video_captions |
|
|
Contains a json object with video information, namely captions. |
|
|
|
|
|
Example entry: |
|
|
``` |
|
|
tkMg8g8vVUo: |
|
|
captions: |
|
|
0: |
|
|
start_time: 0 |
|
|
text: "text" # first caption line |
|
|
end_time: 1 |
|
|
1: |
|
|
start_time: 1 |
|
|
text: "text 2" # second caption line |
|
|
end_time: 1.5 |
|
|
username: "user" # user who last edited captions |
|
|
signer: 1 # (optional) signer in the video |
|
|
``` |
|
|
|
|
|
Keys are video id `strings`. |
|
|
|
|
|
Contains a json object. All keys are optional. |
|
|
Relevant endpoints are `captions` and `username`, although any number of other objects can be added. |
|
|
|
|
|
`captions` contains a json object with the captions to the video. |
|
|
Keys are `integers`. |
|
|
Values are json objects with `start_time`, `text` and `end_time` endpoints. |
|
|
All keys are mandatory. |
|
|
`start_time` and `end_time` must have a numeric value type. |
|
|
`text` is a string. |
|
|
|
|
|
`username` contains a `string` value. |
|
|
It is the HuggingFace username of the person who last edited/saved captions for this video. |
|
|
|
|
|
By default, data is read only. |
|
|
The `username` endpoint is writable. |
|
|
The `captions` endpoint is writable, as long as: |
|
|
- written data has children |
|
|
- all children have the required `start_time`, `text` and `end_time` children |
|
|
- `start_time` and `end_time` are numeric |
|
|
|
|
|
# Database connection |
|
|
|
|
|
Connecting a Space to the database: |
|
|
- Go to `Firebase` > `Project settings` > `General` > `Your apps` > `Caption_editor` |
|
|
- In "SDK setup and configuration" select `Config` |
|
|
- Copy only the config object value |
|
|
- Go to space `Settings` > `Variables and secrets` > `Secrets` > `New secret` |
|
|
- Add a secret with the name `FIREBASE_CONFIG` and value of the config object copied previously. |
|
|
Note that it must be a valid json object, so the key names must be in double quotes. |
|
|
- Done! |