summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-11-30 18:53:25 -0500
committerSacha Chua <sacha@sachachua.com>2022-11-30 18:53:25 -0500
commit5c2b5665aa6f09f225afdf4596d1343ddc450d80 (patch)
treece902c0252dc118722eab0ffdf4de6ead95ac5da
parentb3b0cfa1f290e73655a41aa643da403e8b54fff5 (diff)
downloademacsconf-el-5c2b5665aa6f09f225afdf4596d1343ddc450d80.tar.xz
emacsconf-el-5c2b5665aa6f09f225afdf4596d1343ddc450d80.zip
setup and teardown
-rw-r--r--emacsconf-hyperlist.el36
-rw-r--r--emacsconf-publish.el46
-rw-r--r--emacsconf-stream.el10
-rw-r--r--emacsconf.el9
4 files changed, 77 insertions, 24 deletions
diff --git a/emacsconf-hyperlist.el b/emacsconf-hyperlist.el
index ac095a7..8cc8032 100644
--- a/emacsconf-hyperlist.el
+++ b/emacsconf-hyperlist.el
@@ -162,7 +162,7 @@
(lambda (a b)
(time-less-p (car a) (car b))))))
-(defun emacsconf-hyperlist-format-day (day &optional track info)
+(defun emacsconf-hyperlist-format-streamer-day (day &optional track info)
(setq info (emacsconf-prepare-for-display
(if info (mapcar #'emacsconf-resolve-talk info)
(emacsconf-get-talk-info))))
@@ -195,7 +195,39 @@
(interactive (list (org-read-date "Date: ")))
(pop-to-buffer (get-buffer-create "*hyperlist*"))
(erase-buffer)
- (insert (emacsconf-hyperlist-format-day date track info))
+ (insert
+ "- Setup:
+ - [ ] ssh live screen-fallbacks\n"
+ (mapconcat (lambda (track)
+ (emacsconf-replace-plist-in-string
+ track
+ " - ${name}
+ - [ ] Connect via VNC
+ - [ ] [[elisp:(emacsconf-stream-track-ssh \"${name}\" \"nohup\" \"start-background-music\" \"&\")][start background music]]
+ - [ ] Start recording with OBS (not streaming)
+ - [ ] Check main stream with MPV ${stream}
+ - [ ] Check 480p ${480p}
+ - [ ] [[shell:ssh -t orga@live0.emacsconf.org 'screen -S restream-${id}-youtube /home/orga/restream-${id}-youtube.sh'][Start Youtube restream]] and then confirm ${youtube-studio-url} and ${youtube-url}
+ - [ ] [[shell:ssh -t orga@live0.emacsconf.org 'screen -S restream-${id}-toobnix /home/orga/restream-${id}-toobnix.sh'][Start Toobnix restream]] and then confirm ${toobnix-url}
+ - [ ] [[elisp:(emacsconf-stream-update-track-status \"${name}\")][Update emacsconf-tracks :status and update status page]]
+ - [ ] Start Emacs and use emacsconf-stream-display-clock-and-countdown\n"))
+ emacsconf-tracks
+ "")
+ (emacsconf-hyperlist-format-streamer-day date track info)
+ "- Teardown
+ - [ ] Stop recording
+"
+ (mapconcat (lambda (track)
+ (emacsconf-replace-plist-in-string
+ track
+ " - ${name}
+ - [ ] [[shell:ssh orga@live0.emacsconf.org screen -S restream-${id}-youtube -X quit][stop youtube restream]]
+ - [ ] [[shell:ssh orga@live0.emacsconf.org screen -S restream-${id}-toobnix -X quit][stop toobnix restream]]
+ - [ ] [[elisp:(emacsconf-stream-update-track-status \"${name}\")][Update emacsconf-tracks :status and update status page]]
+ - [ ] Kill the fallback screens on live0
+"
+ ))
+ emacsconf-tracks ""))
(goto-char (point-min))
(org-mode))
diff --git a/emacsconf-publish.el b/emacsconf-publish.el
index 509c5fd..2701cf1 100644
--- a/emacsconf-publish.el
+++ b/emacsconf-publish.el
@@ -2051,26 +2051,32 @@ There is no live Q&A room for ${title}. You can find more information about the
;;; Toobnix
-(defun emacsconf-publish-copy-video-description (talk)
- (interactive (list (emacsconf-complete-talk-info)))
- (kill-new
- (emacsconf-replace-plist-in-string
- (append (list :conf-name emacsconf-name :year emacsconf-year
- :chapters (let ((chapters (subed-parse-file (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir))))
- (if chapters
- (concat
- (mapconcat (lambda (chapter)
- (concat (format-seconds "%.2h:%z%.2m:%.2s" (floor (/ (elt chapter 1) 1000)))
- " " (elt chapter 3) "\n"))
- chapters
- "")
- "\n")
- "")))
- talk)
- "${conf-name} ${year}: ${title} (${speakers-with-pronouns})
-${absolute-url}
+(defun emacsconf-publish-video-description (talk &optional include-title)
+ (interactive (list (emacsconf-complete-talk-info) t))
+ (let ((result
+ (emacsconf-replace-plist-in-string
+ (append (list :conf-name emacsconf-name :year emacsconf-year
+ :chapters (let ((chapters (subed-parse-file (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir))))
+ (if chapters
+ (concat
+ (mapconcat (lambda (chapter)
+ (concat (format-seconds "%.2h:%z%.2m:%.2s" (floor (/ (elt chapter 1) 1000)))
+ " " (elt chapter 3) "\n"))
+ chapters
+ "")
+ "\n")
+ "")))
+ talk)
+ (concat
+ (if include-title
+ "${conf-name} ${year}: ${title} - ${speakers-with-pronouns}\n"
+ "")
+ "${absolute-url}
${chapters}You can view this and other resources using free/libre software at ${absolute-url} .
-This video is available under the terms of the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license."))
- (emacsconf-with-talk-heading talk))
+This video is available under the terms of the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license."))))
+ (when (called-interactively-p 'any)
+ (kill-new result)
+ (emacsconf-with-talk-heading talk))
+ result))
(provide 'emacsconf-publish)
diff --git a/emacsconf-stream.el b/emacsconf-stream.el
index 0daab10..c49ec90 100644
--- a/emacsconf-stream.el
+++ b/emacsconf-stream.el
@@ -911,5 +911,15 @@ ffplay URL
;; (emacsconf-stream-audio-get-volume "General" "qa")
;; (emacsconf-stream-audio-louder "General" "qa")
;; (emacsconf-stream-audio-quieter "General" "qa")
+
+;;; Live
+
+(defun emacsconf-stream-update-track-status (track &optional status)
+ (interactive (list (emacsconf-complete-track)))
+ (plist-put (emacsconf-get-track track)
+ :status (or status (completing-read "Status: " '("online" "offline"))))
+ (emacsconf-stream-update-status-page))
+
+
(provide 'emacsconf-stream)
;;; emacsconf-stream.el ends here
diff --git a/emacsconf.el b/emacsconf.el
index d8b75a4..43060f7 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -1048,6 +1048,8 @@
:webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen"
:stream ,(concat emacsconf-stream-base "gen.webm")
:480p ,(concat emacsconf-stream-base "gen-480p.webm")
+ :toobnix-url "https://toobnix.org/w/7t9X8eXuSby8YpyEKTb4aj"
+ :youtube-url "https://youtu.be/4W9ZvCTG0Ug"
:start "09:00" :end "17:00"
:vnc-display ":5"
:vnc-port "5905"
@@ -1055,8 +1057,11 @@
(:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev"
:watch "https://live.emacsconf.org/2022/watch/dev/"
:webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev"
- :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:"
- :stream ,(concat emacsconf-stream-base "dev.webm")
+ :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:"
+ :toobnix-url "https://toobnix.org/w/w6K77y3bNMo8xsNuqQeCcD"
+ :youtube-url "https://youtu.be/bLJdyzt51uw"
+ :youtube-studio-url "https://studio.youtube.com/video/bLJdyzt51uw/livestreaming"
+ :stream ,(concat emacsconf-stream-base "dev.webm")
:480p ,(concat emacsconf-stream-base "dev-480p.webm")
:start "10:00" :end "17:00"
:vnc-display ":6"