diff --git a/README.org b/README.org index 170fbfe..f960cef 100644 --- a/README.org +++ b/README.org @@ -26,12 +26,26 @@ If you have a recent *Nix* version and *flakes* are enabled, you can execute the #+end_example If you are not running the [[https://nixos.org/][Nix]] package manager, you should definitely try it out. + Anyway, this is just a shell script so clone the repo, make sure the dependencies listed below are fulfilled and there you go. #+begin_example sh ./tyt --help #+end_example +** Dependencies + +If you are running tyt as *Nix flake* you don't have to care about dependencies. +A mpv version with scripts is used by default, this enables *MPRIS support* while playback and *skipping sponsored seqments* of videos. + +These are the dependencies of the script: + +- [[https://stedolan.github.io/jq/][jq]] +- [[https://mpv.io/][mpv]] +- [[https://ytdl-org.github.io/youtube-dl/][youtube-dl]] + +If you are not running Nix, make sure those are available on your system and hope that everything works. + ** Usage #+begin_example text @@ -60,14 +74,6 @@ Anyway, this is just a shell script so clone the repo, make sure the dependencie ** Script *** Dependencies -The dependencies of the script are: - -- [[https://stedolan.github.io/jq/][jq]] -- [[https://mpv.io/][mpv]] -- [[https://ytdl-org.github.io/youtube-dl/][youtube-dl]] - -Please make sure those are available on your system. - On the start of the script, it is checked if the dependencies are fulfilled. #+begin_src bash diff --git a/flake.lock b/flake.lock index cc798b9..7fd9e27 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,27 @@ { "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1618217525, + "narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1618467905, - "narHash": "sha256-T5J91HMTXLcRK7PgN/a7gU9Mv0skkrdyF2q4PSyqUzk=", + "lastModified": 1618640098, + "narHash": "sha256-RPdJQX2/VcLMb04TNZtyCgHyTOjwcaM3UjBziNwGz1g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7bf3b1fe952dcc59a8d3e9c5f6c99d6401ee49c7", + "rev": "a03f318104db1a74791746595829de4c2d53e658", "type": "github" }, "original": { @@ -16,6 +31,7 @@ }, "root": { "inputs": { + "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index ee6628e..6d0dccf 100644 --- a/flake.nix +++ b/flake.nix @@ -1,35 +1,64 @@ { description = "Play YouTube videos from the command line in a convenient way"; - outputs = { self, nixpkgs }: { + inputs.flake-utils.url = "github:numtide/flake-utils"; - packages.x86_64-linux.tyt = - with import nixpkgs { system = "x86_64-linux"; }; + outputs = { self, nixpkgs, flake-utils }: - stdenv.mkDerivation { + flake-utils.lib.eachDefaultSystem + (system: + let + pkgs = nixpkgs.legacyPackages.${system}; - name = "tyt"; - src = self; + # Use mpv with scripts + mpv = (pkgs.mpv-with-scripts.override { + scripts = [ + pkgs.mpvScripts.mpris + pkgs.mpvScripts.sponsorblock + ]; + }); - buildInputs = [ - jq - mpv - youtube-dl - ]; + dependencies = with pkgs; [ + jq + mpv + youtube-dl + ]; - patchPhase = '' - substituteInPlace tyt \ - --replace jq ${jq}/bin/jq \ - --replace mpv ${mpv}/bin/mpv \ - --replace youtube-dl ${youtube-dl}/bin/youtube-dl - ''; - - installPhase = '' - install -m 755 -D tyt $out/bin/tyt - ''; - }; + in + { - defaultPackage.x86_64-linux = self.packages.x86_64-linux.tyt; + # Package - }; + packages.tyt = + + pkgs.stdenv.mkDerivation { + + name = "tyt"; + src = self; + + buildInputs = dependencies; + + patchPhase = with pkgs; '' + substituteInPlace tyt \ + --replace jq ${jq}/bin/jq \ + --replace mpv ${mpv}/bin/mpv \ + --replace youtube-dl ${youtube-dl}/bin/youtube-dl + ''; + + installPhase = '' + install -m 755 -D tyt $out/bin/tyt + ''; + }; + + defaultPackage = self.packages.${system}.tyt; + + # Development shell + + devShell = pkgs.mkShell { + buildInputs = dependencies; + }; + + } + + ); }