diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 266 |
1 files changed, 176 insertions, 90 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4bd2dca909..4120174484 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -42,6 +42,8 @@ ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Alex McGrath <amk@amk.ie> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -134,6 +136,7 @@ #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) + #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print) @@ -526,7 +529,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public straw-viewer (package (name "straw-viewer") - (version "0.0.2") + (version "0.0.6") (source (origin (method git-fetch) @@ -535,7 +538,8 @@ H.264 (MPEG-4 AVC) video streams.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "067j8wdfy29bi5ahky10xzzs8cr3mn95wl4kyqqjvjzri77a25j3")))) + (base32 + "0a9g10r56jdm2jx2yg9i8j8nczq74x78c29bhannr7ybnm2r6w2a")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -610,7 +614,7 @@ available.") (define-public x265 (package (name "x265") - (version "3.3") + (version "3.4") (outputs '("out" "static")) (source (origin @@ -620,7 +624,7 @@ available.") (string-append "https://download.videolan.org/videolan/x265/" "x265_" version ".tar.gz"))) (sha256 - (base32 "170b61cgpcs5n35qps0p40dqs1q81vkgagzbs4zv7pzls6718vpj")) + (base32 "0wl62hfsdqpf3r3z3s6l9bz7pdb1rcik5ll00b3yaadplqipy162")) (patches (search-patches "x265-arm-flags.patch")) (modules '((guix build utils))) (snippet '(begin @@ -637,8 +641,7 @@ available.") #:configure-flags ;; Ensure position independent code for everyone. (list "-DENABLE_PIC=TRUE" - ,@(if (string-prefix? "armhf" (or (%current-system) - (%current-target-system))) + ,@(if (target-arm?) '("-DENABLE_ASSEMBLY=OFF") '()) (string-append "-DCMAKE_INSTALL_PREFIX=" @@ -649,9 +652,6 @@ available.") (lambda _ (delete-file-recursively "build") (chdir "source") - ;; recognize armv8 in 32-bit mode as ARM - (substitute* "CMakeLists.txt" - (("armv6l") "armv8l")) #t)) (add-before 'configure 'build-12-bit (lambda* (#:key (configure-flags '()) #:allow-other-keys) @@ -971,7 +971,12 @@ operate properly.") ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) - ("rav1e" ,rav1e) + ;; XXX: rav1e depends on rust, which currently only works on x86_64. + ;; See also the related configure flag when changing this. + ,@(if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + `(("rav1e" ,rav1e)) + '()) ("sdl" ,sdl2) ("soxr" ,soxr) ("speex" ,speex) @@ -1053,7 +1058,10 @@ operate properly.") "--enable-libmp3lame" "--enable-libopus" "--enable-libpulse" - "--enable-librav1e" + ,@(if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + '("--enable-librav1e") + '()) "--enable-libsoxr" "--enable-libspeex" "--enable-libtheora" @@ -1118,6 +1126,24 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) +;; ungoogled-chromium crashes with ffmpeg 4.3, so stick with this version for +;; now. See <https://issues.guix.gnu.org/41987>. +(define-public ffmpeg-4.2 + (package + (inherit ffmpeg) + (version "4.2.3") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx")))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + `(delete "--enable-librav1e" ,flags)))))) + (define-public ffmpeg-3.4 (package (inherit ffmpeg) @@ -1146,7 +1172,7 @@ audio/video codec library.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/stepmania/ffmpeg.git") + (url "https://github.com/stepmania/ffmpeg") (commit "eda6effcabcf9c238e4635eb058d72371336e09b"))) (sha256 (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) @@ -1172,7 +1198,7 @@ audio/video codec library.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/dirkvdb/ffmpegthumbnailer.git") + (url "https://github.com/dirkvdb/ffmpegthumbnailer") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1445,7 +1471,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mpv-player/mpv.git") + (url "https://github.com/mpv-player/mpv") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1507,6 +1533,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (("\"youtube-dl\",") (string-append "\"" ytdl "/bin/youtube-dl\","))) #t))) + (add-before 'configure 'build-reproducibly + (lambda _ + ;; Somewhere in the build system library dependencies are enumerated + ;; and passed as linker flags, but the order in which they are added + ;; varies. See <https://github.com/mpv-player/mpv/issues/7855>. + ;; Set PYTHONHASHSEED as a workaround for deterministic results. + (setenv "PYTHONHASHSEED" "1") + #t)) (add-before 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) @@ -1614,7 +1648,7 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.06.06") + (version "2020.06.16.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/ytdl-org/youtube-dl/" @@ -1622,7 +1656,7 @@ To load this plugin, specify the following option when starting mpv: version ".tar.gz")) (sha256 (base32 - "1qrrr14glv0jv377n61paq55b6k58jpnwbz2sp5xfl4wnxy5hqny")))) + "1q0080cvxpfakgbzigbnl9adnga3jz1sqig2rsiq52rarqbc01px")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1766,7 +1800,7 @@ other site that youtube-dl supports.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/soimort/you-get.git") + (url "https://github.com/soimort/you-get") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1805,7 +1839,7 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/trizen/youtube-viewer.git") + (url "https://github.com/trizen/youtube-viewer") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -2189,7 +2223,7 @@ capabilities.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/vapoursynth/vapoursynth.git") + (url "https://github.com/vapoursynth/vapoursynth") (commit (string-append "R" version)))) (file-name (git-file-name name version)) (sha256 @@ -2294,7 +2328,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/BasioMeusPuga/twitchy.git") + (url "https://github.com/BasioMeusPuga/twitchy") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -2333,16 +2367,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (define-public mlt (package (name "mlt") - (version "6.18.0") + (version "6.20.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mltframework/mlt.git") + (url "https://github.com/mltframework/mlt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx")))) + "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -2363,7 +2397,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") #t))))) (inputs `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("fftw" ,fftw) ("frei0r-plugins" ,frei0r-plugins) ("gdk-pixbuf" ,gdk-pixbuf) @@ -2430,7 +2464,7 @@ be used for realtime video capture via Linux-specific APIs.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/obsproject/obs-studio.git") + (url "https://github.com/obsproject/obs-studio") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -2594,17 +2628,17 @@ making @dfn{screencasts}.") (define-public simplescreenrecorder (package (name "simplescreenrecorder") - (version "0.3.11") + (version "0.4.2") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/MaartenBaert/ssr.git") + (url "https://github.com/MaartenBaert/ssr") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0n702dnv4qshgn3b90ixvplfafjhgz6040yir5vy8khjdpciysq4")))) + "1dzp5yzqlha65crzklx2qlan6ssw1diwzfpc4svd7gnr858q2292")))) (build-system cmake-build-system) ;; Although libx11, libxfixes, libxext are listed as build dependencies in ;; README.md, the program builds and functions properly without them. @@ -2615,6 +2649,7 @@ making @dfn{screencasts}.") ("glu" ,glu) ("jack" ,jack-1) ("libxi" ,libxi) + ("libxinerama" ,libxinerama) ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) ("qtx11extras" ,qtx11extras))) @@ -2711,14 +2746,14 @@ specifications.") (define-public libaacs (package (name "libaacs") - (version "0.9.0") + (version "0.10.0") (source (origin (method url-fetch) (uri (string-append "https://ftp.videolan.org/pub/videolan/libaacs/" - version "/" name "-" version ".tar.bz2")) + version "/libaacs-" version ".tar.bz2")) (sha256 - (base32 "1kms92i0c7i1yl659kqjf19lm8172pnpik5lsxp19xphr74vvq27")))) + (base32 "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk")))) (inputs `(("libgcrypt" ,libgcrypt))) (native-inputs @@ -2739,7 +2774,7 @@ Content System specification.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mps-youtube/mps-youtube.git") + (url "https://github.com/mps-youtube/mps-youtube") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3194,7 +3229,7 @@ and ITU-T H.222.0.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/FFMS/ffms2.git") + (url "https://github.com/FFMS/ffms2") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -3296,7 +3331,7 @@ tools for styling them, including a built-in real-time video preview.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pitivi/gst-transcoder.git") + (url "https://github.com/pitivi/gst-transcoder") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -3410,7 +3445,7 @@ It counts more than 100 plugins.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Motion-Project/motion.git") + (url "https://github.com/Motion-Project/motion") (commit (string-append "release-" version)))) (sha256 (base32 @@ -3424,7 +3459,7 @@ It counts more than 100 plugins.") ("pkg-config" ,pkg-config))) (inputs `(("libjpeg" ,libjpeg-turbo) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("libmicrohttpd" ,libmicrohttpd) ("sqlite" ,sqlite))) (arguments @@ -3457,7 +3492,7 @@ changed. Or in other words, it can detect motion.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/alexanderwink/subdl.git") + (url "https://github.com/alexanderwink/subdl") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3491,7 +3526,7 @@ save it to the appropriate filename.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/l-smash/l-smash.git") + (url "https://github.com/l-smash/l-smash") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3555,7 +3590,7 @@ online.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/georgmartius/vid.stab.git") + (url "https://github.com/georgmartius/vid.stab") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3704,7 +3739,7 @@ transitions, and effects and then export your film to many common formats.") (define-public dav1d (package (name "dav1d") - (version "0.7.0") + (version "0.7.1") (source (origin (method url-fetch) @@ -3712,7 +3747,7 @@ transitions, and effects and then export your film to many common formats.") "/dav1d/" version "/dav1d-" version ".tar.xz")) (sha256 (base32 - "0xcykraf42gkymzqx1k1lcdclgk9y5yf7rr56vslrgmr0r849qnk")))) + "1hnkfcg57bv5rib6cnj39dy1jx0q7zi5fb2fz52hf2y0bv8bad1k")))) (build-system meson-build-system) (native-inputs `(("nasm" ,nasm))) (home-page "https://code.videolan.org/videolan/dav1d") @@ -3731,7 +3766,7 @@ speed and correctness.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/atomnuker/wlstream.git") + (url "https://github.com/atomnuker/wlstream") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3828,7 +3863,7 @@ to convenience of translating and batch processing of multiple documents.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/FNA-XNA/Theorafile.git") + (url "https://github.com/FNA-XNA/Theorafile") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -3885,16 +3920,16 @@ transcode or reformat the videos in any way, producing perfect backups.") (define-public svt-av1 (package (name "svt-av1") - (version "0.8.3") + (version "0.8.4") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/OpenVisualCloud/SVT-AV1.git") + (url "https://github.com/OpenVisualCloud/SVT-AV1") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1rh4sz1bmrsxyxfxajsffw5jd17djcrymhwsi877v02fgln027qr")))) + "0xad35q9sv5w0iihcf9q1f1m7br5anl3vsyx9svnx128iqf0n997")))) (build-system cmake-build-system) ;; SVT-AV1 only supports Intel-compatible CPUs. (supported-systems '("x86_64-linux" "i686-linux")) @@ -3950,7 +3985,7 @@ result in several formats: (define-public rav1e (package (name "rav1e") - (version "0.3.0") + (version "0.3.3") (source (origin (method url-fetch) @@ -3959,60 +3994,54 @@ result in several formats: (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1bsmj8kqzs5pf8dl98rsl6a67cljj1gkj3b5hmd8hn8wdy4ya173")))) + "053bh8hc6jj81ydq4gcak01b0ady59hvkl7d87im3y8nafg7xzb4")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-simd-helpers" ,rust-simd-helpers-0.1) - ("rust-ivf" ,rust-ivf-0.1) - ("rust-cfg-if" ,rust-cfg-if-0.1) - ("rust-paste" ,rust-paste-0.1) - ("rust-signal-hook" ,rust-signal-hook-0.1) - ("rust-aom-sys" ,rust-aom-sys-0.1) - ("rust-nasm-rs" ,rust-nasm-rs-0.1) + (("rust-aom-sys" ,rust-aom-sys-0.1) ("rust-arbitrary" ,rust-arbitrary-0.2) - ("rust-better-panic" ,rust-better-panic-0.2) - ("rust-noop-proc-macro" - ,rust-noop-proc-macro-0.2) - ("rust-num-traits" ,rust-num-traits-0.2) - ("rust-rand-chacha" ,rust-rand-chacha-0.2) - ("rust-err-derive" ,rust-err-derive-0.2) - ("rust-interpolate-name" - ,rust-interpolate-name-0.2) - ("rust-rustc-version" ,rust-rustc-version-0.2) - ("rust-scan-fmt" ,rust-scan-fmt-0.2) - ("rust-libc" ,rust-libc-0.2) - ("rust-image" ,rust-image-0.22) - ("rust-arg-enum-proc-macro" - ,rust-arg-enum-proc-macro-0.3) - ("rust-num-derive" ,rust-num-derive-0.3) - ("rust-dav1d-sys" ,rust-dav1d-sys-0.3) + ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3) + ("rust-arrayvec" ,rust-arrayvec-0.5) ("rust-backtrace" ,rust-backtrace-0.3) + ("rust-bitstream-io" ,rust-bitstream-io-0.8) + ("rust-byteorder" ,rust-byteorder-1.3) + ("rust-cfg-if" ,rust-cfg-if-0.1) + ("rust-clap" ,rust-clap-2) + ("rust-console" ,rust-console-0.11) + ("rust-dav1d-sys" ,rust-dav1d-sys-0.3) + ("rust-fern" ,rust-fern-0.6) + ("rust-image" ,rust-image-0.23) + ("rust-interpolate-name" ,rust-interpolate-name-0.2) + ("rust-itertools" ,rust-itertools-0.9) + ("rust-ivf" ,rust-ivf-0.1) + ("rust-libc" ,rust-libc-0.2) ("rust-log" ,rust-log-0.4) - ("rust-y4m" ,rust-y4m-0.5) - ("rust-arrayvec" ,rust-arrayvec-0.5) - ("rust-toml" ,rust-toml-0.5) - ("rust-fern" ,rust-fern-0.5) - ("rust-rust-hawktracer" - ,rust-rust-hawktracer-0.7) + ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.2) + ("rust-num-derive" ,rust-num-derive-0.3) + ("rust-num-traits" ,rust-num-traits-0.2) + ("rust-paste" ,rust-paste-0.1) ("rust-rand" ,rust-rand-0.7) - ("rust-itertools" ,rust-itertools-0.8) - ("rust-bitstream-io" ,rust-bitstream-io-0.8) - ("rust-console" ,rust-console-0.9) + ("rust-rand-chacha" ,rust-rand-chacha-0.2) + ("rust-rayon" ,rust-rayon-1) + ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7) + ("rust-scan-fmt" ,rust-scan-fmt-0.2) ("rust-serde" ,rust-serde-1.0) + ("rust-signal-hook" ,rust-signal-hook-0.1) + ("rust-simd-helpers" ,rust-simd-helpers-0.1) + ("rust-thiserror" ,rust-thiserror-1.0) + ("rust-toml" ,rust-toml-0.5) + ("rust-y4m" ,rust-y4m-0.5) ("rust-cc" ,rust-cc-1.0) - ("rust-rayon" ,rust-rayon-1.3) - ("rust-byteorder" ,rust-byteorder-1.3) - ("rust-clap" ,rust-clap-2) + ("rust-nasm-rs" ,rust-nasm-rs-0.1) + ("rust-rustc-version" ,rust-rustc-version-0.2) ("rust-vergen" ,rust-vergen-3.1)) #:cargo-development-inputs - (("rust-rand-chacha" ,rust-rand-chacha-0.2) - ("rust-interpolate-name" - ,rust-interpolate-name-0.2) + (("rust-assert-cmd" ,rust-assert-cmd-1) ("rust-criterion" ,rust-criterion-0.3) - ("rust-pretty-assertions" - ,rust-pretty-assertions-0.6) + ("rust-interpolate-name" ,rust-interpolate-name-0.2) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.6) ("rust-rand" ,rust-rand-0.7) + ("rust-rand-chacha" ,rust-rand-chacha-0.2) ("rust-semver" ,rust-semver-0.9)) #:phases (modify-phases %standard-phases @@ -4039,7 +4068,7 @@ result in several formats: (origin (method git-fetch) (uri (git-reference - (url "https://github.com/phw/peek.git") + (url "https://github.com/phw/peek") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -4073,7 +4102,7 @@ can also directly record to WebM or MP4 if you prefer.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ammen99/wf-recorder.git") + (url "https://github.com/ammen99/wf-recorder") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -4134,3 +4163,60 @@ brightness, contrast, and frame rate.") ;; 'COPYING' is GPLv3 but source headers say GPLv2+. (license license:gpl2+))) + +(define-public get-iplayer + (package + (name "get-iplayer") + (version "3.26") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/get-iplayer/get_iplayer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lsz5hz1ia5j612540rb0f31y7j2k5gf7x5i43l8k06b90wi73d6")))) + (build-system perl-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man1"))) + (install-file "get_iplayer" bin) + (install-file "get_iplayer.cgi" bin) + (install-file "get_iplayer.1" man)) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (perllib (string-append out "/lib/perl5/site_perl/" + ,(package-version perl)))) + (wrap-program (string-append out "/bin/get_iplayer") + `("PERL5LIB" ":" + prefix (,(string-append perllib ":" (getenv "PERL5LIB"))))) + (wrap-program (string-append out "/bin/get_iplayer.cgi") + `("PERL5LIB" ":" + prefix (,(string-append perllib ":" (getenv "PERL5LIB"))))) + #t)))))) + (inputs + `(("perl-mojolicious" ,perl-mojolicious) + ("perl-lwp-protocol-https" ,perl-lwp-protocol-https) + ("perl-xml-libxml" ,perl-xml-libxml))) + (home-page "https://github.com/get-iplayer/get_iplayer") + (synopsis "Download or stream available BBC iPlayer TV and radio programmes") + (description "@code{get_iplayer} lists, searches and records BBC iPlayer +TV/Radio, BBC Podcast programmes. Other third-party plugins may be available. +@code{get_iplayer} has three modes: recording a complete programme for later +playback, streaming a programme directly to a playback application, such as +mplayer; and as a @dfn{Personal Video Recorder} (PVR), subscribing to search +terms and recording programmes automatically. It can also stream or record live +BBC iPlayer output.") + (license license:gpl3+))) |