3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

gnu: Add straw-viewer.

* gnu/packages/video.scm (straw-viewer): New public variable.
This commit is contained in:
Tobias Geerinckx-Rice 2020-03-17 19:40:55 +01:00
parent 9bd0f41509
commit 6c71d56d77
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -123,6 +123,7 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages ocr)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
@ -511,6 +512,90 @@ H.264 (MPEG-4 AVC) video streams.")
(@command{mkvmerge}).")
(license license:gpl2)))
(define-public straw-viewer
(package
(name "straw-viewer")
(version "0.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/trizen/straw-viewer")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "067j8wdfy29bi5ahky10xzzs8cr3mn95wl4kyqqjvjzri77a25j3"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)
("perl-test-pod" ,perl-test-pod)))
(inputs
`(("perl-data-dump" ,perl-data-dump)
("perl-json" ,perl-json)
("perl-libwww" ,perl-libwww)
("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
("perl-mozilla-ca" ,perl-mozilla-ca)
("perl-term-readline-gnu" ,perl-term-readline-gnu)
("perl-unicode-linebreak" ,perl-unicode-linebreak)
("xdg-utils" ,xdg-utils)
;; Some videos play without youtube-dl, but others silently fail to.
("youtube-dl" ,youtube-dl)))
;; Required only when building the graphical interface (--gtk).
;;("perl-file-sharedir" ,perl-file-sharedir)
(arguments
`(#:modules ((guix build perl-build-system)
(guix build utils)
(srfi srfi-26))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'refer-to-inputs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "lib/WWW/StrawViewer.pm"
(("'youtube-dl'")
(format #f "'~a/bin/youtube-dl'"
(assoc-ref inputs "youtube-dl"))))
(substitute* "bin/gtk-straw-viewer"
(("'xdg-open'")
(format #f "'~a/bin/xdg-open'"
(assoc-ref inputs "xdg-utils"))))
#t))
(add-after 'install 'install-desktop
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(sharedir (string-append out "/share")))
(install-file "share/gtk-straw-viewer.desktop"
(string-append sharedir "/applications"))
(install-file "share/icons/gtk-straw-viewer.png"
(string-append sharedir "/pixmaps"))
#t)))
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin-dir (string-append out "/bin/"))
(site-dir (string-append out "/lib/perl5/site_perl/"))
(lib-path (getenv "PERL5LIB")))
(for-each (cut wrap-program <>
`("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
(find-files bin-dir))
#t))))))
(synopsis
"Light-weight application for searching and streaming videos from YouTube")
(description
"Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
invidio.us} and plays them locally in a native media player like @command{vlc}
or @command{mpv}.
You can search for videos, playlists, and/or channels. The videos are streamed
directly to the player at the best chosen resolution and with closed captions if
available.")
;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
;; Both a command-line and a graphical interface are available.
(home-page "https://github.com/trizen/youtube-viewer")
(license license:perl-license)))
(define-public x265
(package
(name "x265")