]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Avoid uploading empty master file
authorChocobozzz <me@florianbigard.com>
Fri, 19 May 2023 09:03:47 +0000 (11:03 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 19 May 2023 09:03:47 +0000 (11:03 +0200)
server/lib/live/shared/muxing-session.ts

index 6632499ffdeb351b9366e2cede9ab5b897ccb77b..c9e5df906f9e11d8a5a389255844533075689440 100644 (file)
@@ -184,11 +184,15 @@ class MuxingSession extends EventEmitter {
   }
 
   private watchMasterFile () {
-    this.filesWatcher.on('add', async path => {
+    const watcher = this.filesWatcher.on('change', async path => {
       if (path !== join(this.outDirectory, this.streamingPlaylist.playlistFilename)) return
       if (this.masterPlaylistCreated === true) return
 
       try {
+        const masterPlaylistContent = await readFile(path, 'utf8')
+        // Not generated yet
+        if (!masterPlaylistContent) return
+
         if (this.streamingPlaylist.storage === VideoStorage.OBJECT_STORAGE) {
           const url = await storeHLSFileFromFilename(this.streamingPlaylist, this.streamingPlaylist.playlistFilename)
 
@@ -205,6 +209,9 @@ class MuxingSession extends EventEmitter {
       this.masterPlaylistCreated = true
 
       logger.info('Master playlist file for %s has been created', this.videoUUID, this.lTags())
+
+      watcher.close()
+        .catch(err => logger.error('Cannot close watcher', { err }))
     })
   }