- only set duration when stream status is stopped
- remove unused Library.maybe_update_*/2
- cleanup with statement
- fix: video live status was always set to false instead of respecting toggle state
* chore: setup migrations for tags field in users and videos
* chore: add tags to user and video schema
* feat(ui): add tags live_component
* chore: update tags handling
change add_tag event from enter to use 'space' key
add channel tags to live video
* fix: clear tag input when a tag is added
* fix: allow channel/user tags to be inherited by videos
* remove rebase artifact
* De-duplicate video tags by coalescing user tags
This will avoid updating every video for a user anytime they change
their tags and will also allow videos to have different tags from a user's tags
Added Library.count_tags/1 and Library.list_videos_by_tag/2
* add gin index for tags
* enforce limit and order for Library.count_tags/1
* add Accounts.count_tags/1
* sync video tags with user tags during livestream reconciliation
---------
Co-authored-by: ty <lastcanal@gmail.com>
Co-authored-by: zafer <zafer@algora.io>
Ensure only 4 segments are sent in delta playlists and that every
segment is a partial segment. Currently full segments are upload async
and may not be available when delta playlists are published.
Upload partial segments in parallel
Wait for uploads to finish before sending preload hint by using
selective receive and waiting for the uploading process to exit
Redirect requests for partials to S3 after waiting for the parital to be uploaded
Remove partials from s3 when they are removed from ets
Set partial segment duration to 1 second