all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui.
@ 2017-04-17  1:30 Chris Marusich
  2017-04-17  1:39 ` bug#26538: [PATCH 1/1] " Chris Marusich
  2017-04-21 19:15 ` bug#26538: [PATCH 0/1] " Björn Höfling
  0 siblings, 2 replies; 5+ messages in thread
From: Chris Marusich @ 2017-04-17  1:30 UTC (permalink / raw)
  To: 26538; +Cc: Chris Marusich

Hi,

This patch adds youtube-dl-gui.  I've confirmed that it works on
GuixSD and a foreign distro.  I've confirmed that downloading a video
in the default format works, and I've confirmed that converting the
video to an audio-only MP3 file works, too.  I didn't exhaustively
test all combinations of the various options, but the program seems to
be working well enough.

There was one minor issue that really bugged me which I couldn't
figure out.  It only happens when running youtube-dl-gui on a foreign
distro - Ubuntu, to be exact.  The issue is this: when downloading a
video that contains Japanese characters in the title [1], the title of
the video displayed in the youtube-dl-gui application contains boxes
instead of Japanese characters.  These boxes contain hexadecimal
values, which I suppose are the Unicode code points for the Japanese
characters.  It's as if youtube-dl-gui (or one of its dependencies)
failed to find a Japanese font.  In any case, once the file has been
saved to the local file system, other applications (e.g., Ubuntu's
file browser) display the Japanese characters in the file name
correctly.

This only happens on a foreign distro.  In GuixSD, youtube-dl-gui
displays the Japanese characters correctly.  To fix the issue, I tried
installing Japanese fonts to Ubuntu via apt-get.  I tried installing
Japanese fonts into my Guix profile.  Nothing worked; youtube-dl-gui
continued to display boxes instead of Japanese characters.  If anybody
has any ideas for how to fix this, please let me know.

[1] Example: https://www.youtube.com/watch?v=k4xGqY5IDBE

Chris Marusich (1):
  gnu: Add youtube-dl-gui.

 gnu/packages/video.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

-- 
2.12.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#26538: [PATCH 1/1] gnu: Add youtube-dl-gui.
  2017-04-17  1:30 bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui Chris Marusich
@ 2017-04-17  1:39 ` Chris Marusich
  2017-04-17 19:47   ` Leo Famulari
  2017-04-21 19:15 ` bug#26538: [PATCH 0/1] " Björn Höfling
  1 sibling, 1 reply; 5+ messages in thread
From: Chris Marusich @ 2017-04-17  1:39 UTC (permalink / raw)
  To: 26538; +Cc: Chris Marusich

* gnu/packages/video.scm (youtube-dl-gui): New variable.
---
 gnu/packages/video.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b64664176..a80d187be 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
+;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +96,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -1024,6 +1026,92 @@ YouTube.com and a few more sites.")
     (home-page "https://yt-dl.org")
     (license license:public-domain)))
 
+(define-public youtube-dl-gui
+  (package
+    (name "youtube-dl-gui")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/MrS0m30n3/youtube-dl-gui/archive/"
+                           version
+                           ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256 (base32 "1kaq3nrr7l52s9lvrqqywsk8yd6f2lciwj1hd40h8hs4463yrrqc"))))
+    (build-system python-build-system)
+    (arguments
+     ;; In Guix, wxpython has not yet been packaged for Python 3.
+     `(#:python ,python-2
+       ;; This package has no tests.
+       #:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'patch-source
+                              (lambda* (#:key inputs #:allow-other-keys)
+                                ;; The youtube-dl-gui program lets you
+                                ;; configure options.  Some of them are
+                                ;; problematic, so we change their defaults.
+                                (substitute* "youtube_dl_gui/optionsmanager.py"
+                                  ;; When this is true, the builder process will
+                                  ;; try (and fail) to write logs to the builder
+                                  ;; user's home directory.
+                                  (("'enable_log': True") "'enable_log': False")
+                                  ;; This determines which youtube-dl program
+                                  ;; youtube-dl-gui will run.  If we don't set
+                                  ;; this, then youtube-dl-gui might download
+                                  ;; an arbitrary copy from the Internet into
+                                  ;; the user's home directory and run it, so
+                                  ;; let's make sure youtube-dl-gui uses the
+                                  ;; youtube-dl from the inputs by default.
+                                  (("'youtubedl_path': self.config_path")
+                                   (string-append "'youtubedl_path': '"
+                                                  (assoc-ref inputs "youtube-dl")
+                                                  "/bin'"))
+                                  ;; When this is True, when youtube-dl-gui is
+                                  ;; finished downloading a file, it will try
+                                  ;; (and possibly fail) to open the directory
+                                  ;; containing the downloaded file.  This can
+                                  ;; fail because it assumes that xdg-open is
+                                  ;; in PATH.  Unfortunately, simply adding
+                                  ;; xdg-utils to the propagated inputs is not
+                                  ;; enough to make this work, so for now we
+                                  ;; set the default to False.
+                                  (("'open_dl_dir': True") "'open_dl_dir': False"))
+                                ;; The youtube-dl program from the inputs is
+                                ;; actually a wrapper script written in bash,
+                                ;; so attempting to invoke it as a python
+                                ;; script will fail.
+                                (substitute* "youtube_dl_gui/downloaders.py"
+                                  (("cmd = \\['python', self\\.youtubedl_path\\]")
+                                   "cmd = [self.youtubedl_path]"))
+                                ;; Use relative paths for installing data
+                                ;; files so youtube-dl-gui installs the files
+                                ;; relative to its prefix in the store, rather
+                                ;; than relative to /.  Also, instead of
+                                ;; installing data files into
+                                ;; $prefix/usr/share, install them into
+                                ;; $prefix/share for consistency (see:
+                                ;; (standards) Directory Variables).
+                                (substitute* "setup.py"
+                                  (("= '/usr/share") "= 'share"))
+                                ;; Update get_locale_file() so it finds the
+                                ;; installed localization files.
+                                (substitute* "youtube_dl_gui/utils.py"
+                                  (("os\\.path\\.join\\('/usr', 'share'")
+                                   (string-append "os.path.join('"
+                                                  (assoc-ref %outputs "out")
+                                                  "', 'share'"))))))))
+    (inputs
+     `(("python2-wxpython" ,python2-wxpython)
+       ("youtube-dl" ,youtube-dl)))
+    (home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
+    (synopsis
+     "GUI (Graphical User Interface) for @command{youtube-dl}")
+    (description
+     "Youtube-dlG is a GUI (Graphical User Interface) for
+@command{youtube-dl}.  You can use it to download videos from YouTube and any
+other sites that youtube-dl supports.")
+    (license license:unlicense)))
+
 (define-public you-get
   (package
     (name "you-get")
-- 
2.12.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#26538: [PATCH 1/1] gnu: Add youtube-dl-gui.
  2017-04-17  1:39 ` bug#26538: [PATCH 1/1] " Chris Marusich
@ 2017-04-17 19:47   ` Leo Famulari
  0 siblings, 0 replies; 5+ messages in thread
From: Leo Famulari @ 2017-04-17 19:47 UTC (permalink / raw)
  To: Chris Marusich; +Cc: 26538-done

[-- Attachment #1: Type: text/plain, Size: 995 bytes --]

On Sun, Apr 16, 2017 at 06:39:28PM -0700, Chris Marusich wrote:
> * gnu/packages/video.scm (youtube-dl-gui): New variable.

Thanks! I pushed as 794223bc776aeaf94da2d5b5f330c71fc404b238 with the
following changes:

> +       (uri (string-append "https://github.com/MrS0m30n3/youtube-dl-gui/archive/"
> +                           version
> +                           ".tar.gz"))
> +       (file-name (string-append name "-" version ".tar.gz"))
> +       (sha256 (base32 "1kaq3nrr7l52s9lvrqqywsk8yd6f2lciwj1hd40h8hs4463yrrqc"))))

It fetches the source from PyPi.

> +       #:phases (modify-phases %standard-phases
> +                  (add-before 'build 'patch-source
> +                              (lambda* (#:key inputs #:allow-other-keys)

I adjusted the indentation to be less severe! :)

> +     "Youtube-dlG is a GUI (Graphical User Interface) for
> +@command{youtube-dl}.  You can use it to download videos from YouTube and any
> +other sites that youtube-dl supports.")

s/sites/site

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui.
  2017-04-17  1:30 bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui Chris Marusich
  2017-04-17  1:39 ` bug#26538: [PATCH 1/1] " Chris Marusich
@ 2017-04-21 19:15 ` Björn Höfling
  2017-04-21 19:36   ` Leo Famulari
  1 sibling, 1 reply; 5+ messages in thread
From: Björn Höfling @ 2017-04-21 19:15 UTC (permalink / raw)
  To: Chris Marusich; +Cc: 26538


On Sun, 16 Apr 2017 18:30:43 -0700
Chris Marusich <cmmarusich@gmail.com> wrote:

> Hi,
> 
> This patch adds youtube-dl-gui.  I've confirmed that it works on
> GuixSD and a foreign distro.  I've confirmed that downloading a video
> in the default format works, and I've confirmed that converting the
> video to an audio-only MP3 file works, too.  I didn't exhaustively
> test all combinations of the various options, but the program seems to
> be working well enough.

I tried it out and it looks good, except for this:

There is an "Update" button which tries to download and install the
newest version of itself. I tried the button with network offline and
it has a status message of "Network is unreachable." I don't know what
exactly happens here when the network is reachable.

The software should only be updated via Guix. Would it be possible with
a patch to remove or disable the button?

Björn

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui.
  2017-04-21 19:15 ` bug#26538: [PATCH 0/1] " Björn Höfling
@ 2017-04-21 19:36   ` Leo Famulari
  0 siblings, 0 replies; 5+ messages in thread
From: Leo Famulari @ 2017-04-21 19:36 UTC (permalink / raw)
  To: Björn Höfling; +Cc: 26538, Chris Marusich

[-- Attachment #1: Type: text/plain, Size: 562 bytes --]

On Fri, Apr 21, 2017 at 09:15:05PM +0200, Björn Höfling wrote:
> There is an "Update" button which tries to download and install the
> newest version of itself. I tried the button with network offline and
> it has a status message of "Network is unreachable." I don't know what
> exactly happens here when the network is reachable.

Probably, it will try to overwrite the files in /gnu/store and fail.

> The software should only be updated via Guix. Would it be possible with
> a patch to remove or disable the button?

Can you suggest it upstream?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-04-21 19:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-17  1:30 bug#26538: [PATCH 0/1] gnu: Add youtube-dl-gui Chris Marusich
2017-04-17  1:39 ` bug#26538: [PATCH 1/1] " Chris Marusich
2017-04-17 19:47   ` Leo Famulari
2017-04-21 19:15 ` bug#26538: [PATCH 0/1] " Björn Höfling
2017-04-21 19:36   ` Leo Famulari

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.