CaptionEditorTest / README.md
maryna7679's picture
Cleanup
7e5e159
|
raw
history blame
2.77 kB
---
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!