Unverified Commit 33a43306 authored by Sefa Eyeoglu's avatar Sefa Eyeoglu Committed by GitHub
Browse files

vrcvideocacher: init at 2026.4.4 (#503358)

parents 929227e3 f419f35c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -5478,6 +5478,16 @@
    githubId = 32609395;
    name = "B YI";
  };
  coolGi = {
    email = "me@coolgi.dev";
    github = "coolGi69";
    githubId = 57488297;
    name = "coolGi";
    matrix = "@me:coolgi.dev";
    keys = [
      { fingerprint = "1E3E C960 F2C0 9128 5398  A4A9 28B0 7544 198A DB06"; }
    ];
  };
  corbanr = {
    email = "corban@raunco.co";
    github = "CorbanR";
+352 −0
Original line number Diff line number Diff line
[
  {
    "pname": "AsyncImageLoader.Avalonia",
    "version": "3.5.0",
    "hash": "sha256-KBn0YY8RFE5SXwPdla1+ux/rC+DFTYllOkuGtR1iQZ8="
  },
  {
    "pname": "Avalonia",
    "version": "11.3.11",
    "hash": "sha256-FSMuXVA5q5L5evwos5bIsuT81suO8FbCjEF3OvAL9p0="
  },
  {
    "pname": "Avalonia.Angle.Windows.Natives",
    "version": "2.1.25547.20250602",
    "hash": "sha256-LE/lENAHptmz6t3T/AoJwnhpda+xs7PqriNGzdcfg8M="
  },
  {
    "pname": "Avalonia.BuildServices",
    "version": "11.3.2",
    "hash": "sha256-6wx06tjSKWQOlX2czdp6Wh0nuwVapx5qf/s8Qj5we40="
  },
  {
    "pname": "Avalonia.Controls.ColorPicker",
    "version": "11.3.11",
    "hash": "sha256-Ki6O9HYbseQPV3DsvwmJ+ERimi/WmvzelNJDKP6loo0="
  },
  {
    "pname": "Avalonia.Controls.DataGrid",
    "version": "11.3.11",
    "hash": "sha256-xCRjXSd7ocHxuEzBhLokSHRrgtt4akJ7LUIC2oQ43io="
  },
  {
    "pname": "Avalonia.Desktop",
    "version": "11.3.11",
    "hash": "sha256-oFivO8/0rir4BwQsTeWs3bSnb7RmldwxYmI77j5pt8k="
  },
  {
    "pname": "Avalonia.Diagnostics",
    "version": "11.3.11",
    "hash": "sha256-p38+O0VDqZ8u5VOzImP21/U5wyP1BUp2UrLLc9HSfwE="
  },
  {
    "pname": "Avalonia.Fonts.Inter",
    "version": "11.3.11",
    "hash": "sha256-S0DWwcZHulVUIckiv2HM1Vbqno64c/Xt+mPhZp1tfsA="
  },
  {
    "pname": "Avalonia.FreeDesktop",
    "version": "11.3.11",
    "hash": "sha256-UE2/w9cw3YDzsw3HuhI2sTPy8reH9C71ufmHOpzvlSQ="
  },
  {
    "pname": "Avalonia.Native",
    "version": "11.3.11",
    "hash": "sha256-vw67lp/oOt+2lqdJ5PK2FY93jqPTcgZqOAXLtSXlJ8s="
  },
  {
    "pname": "Avalonia.Remote.Protocol",
    "version": "11.3.11",
    "hash": "sha256-l1f3rVygtI268llwbN0NvTDSfXwZE3CyRw8w5tbHBC4="
  },
  {
    "pname": "Avalonia.Skia",
    "version": "11.3.11",
    "hash": "sha256-89TGu50JfEVFo+QZgyOR0uOagC/xoJvqfnrHep3W/cc="
  },
  {
    "pname": "Avalonia.Themes.Fluent",
    "version": "11.3.11",
    "hash": "sha256-tiJ0xAFf0UVSH7LASPtg/7ils7+vZjw2UKBMydyUR3Q="
  },
  {
    "pname": "Avalonia.Themes.Simple",
    "version": "11.3.11",
    "hash": "sha256-AJS5Ls0tJ6PCr2mnr1PpxGWX4sII8mpe2R+VCFYRg44="
  },
  {
    "pname": "Avalonia.Win32",
    "version": "11.3.11",
    "hash": "sha256-6/NG4OrB/4YisXzJ51GPuq3uDn8oEUWyJRAqejyMCQw="
  },
  {
    "pname": "Avalonia.X11",
    "version": "11.3.11",
    "hash": "sha256-2fiQvKxU/r71UOAQgy0zwSHVCM2uG2sdEUhObd5TrQQ="
  },
  {
    "pname": "CodingSeb.Localization",
    "version": "1.4.0",
    "hash": "sha256-+GdBrmIyOHoN6dJQie7lNZ4IO0uCI20Qzz/Ka4dUFsA="
  },
  {
    "pname": "CodingSeb.Localization.Avalonia",
    "version": "1.4.1",
    "hash": "sha256-nYSkSpBvPUBr1zI78IeR4hQ2GaxfcNjuphS2XaV+uu4="
  },
  {
    "pname": "CommunityToolkit.Mvvm",
    "version": "8.4.0",
    "hash": "sha256-a0D550q+ffreU9Z+kQPdzJYPNaj1UjgyPofLzUg02ZI="
  },
  {
    "pname": "EmbedIO",
    "version": "3.5.2",
    "hash": "sha256-e6GfVHXxYeUw3ntCrHokNoAS6mXArO7+vdMeUFnsSo8="
  },
  {
    "pname": "HarfBuzzSharp",
    "version": "8.3.1.1",
    "hash": "sha256-614yv6bK9ynhdUnvW4wIkgpBe2sqTh28U9cDZzdhPc0="
  },
  {
    "pname": "HarfBuzzSharp.NativeAssets.Linux",
    "version": "8.3.1.1",
    "hash": "sha256-sBbez6fc9axVcsBbIHbpQh/MM5NHlMJgSu6FyuZzVyU="
  },
  {
    "pname": "HarfBuzzSharp.NativeAssets.macOS",
    "version": "8.3.1.1",
    "hash": "sha256-hK20KbX2OpewIO5qG5gWw5Ih6GoLcIDgFOqCJIjXR/Q="
  },
  {
    "pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
    "version": "8.3.1.1",
    "hash": "sha256-mLKoLqI47ZHXqTMLwP1UCm7faDptUfQukNvdq6w/xxw="
  },
  {
    "pname": "HarfBuzzSharp.NativeAssets.Win32",
    "version": "8.3.1.1",
    "hash": "sha256-Um4iwLdz9XtaDSAsthNZdev6dMiy7OBoHOrorMrMYyo="
  },
  {
    "pname": "Material.Icons",
    "version": "2.4.1",
    "hash": "sha256-+LTHyF3f7QqkfVQM2pjIA7GpT5Gj5/BoLDSjZKhBl1M="
  },
  {
    "pname": "Material.Icons.Avalonia",
    "version": "2.4.1",
    "hash": "sha256-gONbczMJ3THUicrnoCGtBLaYuNDfge/qVF+0ASAGGd8="
  },
  {
    "pname": "MicroCom.Runtime",
    "version": "0.11.0",
    "hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
  },
  {
    "pname": "Microsoft.Data.Sqlite.Core",
    "version": "10.0.2",
    "hash": "sha256-gpArXkjFSk62NA88ZYwWc0m4/2UsJyd9/8TCAsI8u4w="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore",
    "version": "10.0.2",
    "hash": "sha256-FS6T8EnaWCMtj4PnZhh+oF8mcM44VlM3wkTSMlpte9A="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore.Abstractions",
    "version": "10.0.2",
    "hash": "sha256-qkDfIJpcPO2kk4n5OE/13hI/0mUygpTofInn95XjRZI="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore.Analyzers",
    "version": "10.0.2",
    "hash": "sha256-yOv78rgAACBz1zjitpcZbQQ3zx8huJongZTHkhN4PQ0="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore.Relational",
    "version": "10.0.2",
    "hash": "sha256-Y4jPpoYhKizg5wF6QfkBX4sYlE2FU1bYhfoDN3xkhKM="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore.Sqlite",
    "version": "10.0.2",
    "hash": "sha256-s/bwWC9SdFKr93Oz57pImCB6hf/FYa+sCxtMYC7w+vQ="
  },
  {
    "pname": "Microsoft.EntityFrameworkCore.Sqlite.Core",
    "version": "10.0.2",
    "hash": "sha256-oIw6neqiY9JUyYg1lNi92ddDq6pWVOsn7DIBlGPOh+A="
  },
  {
    "pname": "Microsoft.Extensions.Caching.Abstractions",
    "version": "10.0.2",
    "hash": "sha256-nKmQuZTt1g5/8gBajo7wdCV64kdCucdiQR8JTt7ZZb0="
  },
  {
    "pname": "Microsoft.Extensions.Caching.Memory",
    "version": "10.0.2",
    "hash": "sha256-sRUF7DM0s1yzZnfjM/hF9A/IysE6Er23gZ6jST+RWh0="
  },
  {
    "pname": "Microsoft.Extensions.Configuration.Abstractions",
    "version": "10.0.2",
    "hash": "sha256-P+0kaDGO+xB9KxF9eWHDJ4hzi05sUGM/uMNEX5NdBTE="
  },
  {
    "pname": "Microsoft.Extensions.DependencyInjection",
    "version": "10.0.2",
    "hash": "sha256-/9UWQRAI2eoocnJWWf1ktnAx/1Gt65c16fc0Xqr9+CQ="
  },
  {
    "pname": "Microsoft.Extensions.DependencyInjection.Abstractions",
    "version": "10.0.2",
    "hash": "sha256-UF9T13V5SQxJy2msfLmyovLmitZrjJayf8gHH+uK2eg="
  },
  {
    "pname": "Microsoft.Extensions.DependencyModel",
    "version": "10.0.2",
    "hash": "sha256-w/dGIjtZiGH+KW3969BPOdQpQEV+WB7RPTa2MK2DavE="
  },
  {
    "pname": "Microsoft.Extensions.Logging",
    "version": "10.0.2",
    "hash": "sha256-9+gfQwK32JMYscW1YvyCWEzc9mRZOjCACoD9U1vVaJI="
  },
  {
    "pname": "Microsoft.Extensions.Logging.Abstractions",
    "version": "10.0.2",
    "hash": "sha256-ndKGzq8+2J/hvaIULwBui0L/jDyMQTAY24j+ohX5VX8="
  },
  {
    "pname": "Microsoft.Extensions.Options",
    "version": "10.0.2",
    "hash": "sha256-12AfUEDdta/pmZUyEyqSUfOk0YoA7JOfGmIYnZQ//qk="
  },
  {
    "pname": "Microsoft.Extensions.Primitives",
    "version": "10.0.2",
    "hash": "sha256-8Ccrjjv9cFVf9RyCc7GS/Byt8+DXdSNea0UX3A5BEdA="
  },
  {
    "pname": "Microsoft.Extensions.Primitives",
    "version": "5.0.1",
    "hash": "sha256-e4uoLnUSmON4If9qJh78+4z14IzW9qCu5YkqLdQqWQU="
  },
  {
    "pname": "Newtonsoft.Json",
    "version": "13.0.4",
    "hash": "sha256-8JCB1FdAW681qXP6DFDWvycu1oPyVoxaYgpJ2pUvZSk="
  },
  {
    "pname": "securifybv.PropertyStore",
    "version": "0.1.0",
    "hash": "sha256-jTPT9E2LyElgJq4HMavkdwT8tA9uklnJv00mlIx66+g="
  },
  {
    "pname": "securifybv.ShellLink",
    "version": "0.1.0",
    "hash": "sha256-Am+ZednCVJUDgB7TePyY3CTxKDQ6Lr8M8KiCVAJoouw="
  },
  {
    "pname": "Semver",
    "version": "3.0.0",
    "hash": "sha256-nX5ka27GY6pz9S73H6sLSQCrnAyyI9xDVdzrtlMp4BQ="
  },
  {
    "pname": "Sentry",
    "version": "6.1.0",
    "hash": "sha256-5sntMrMha03xtWdKLJnOT/W2fK5lwzaLiNOYFRqBURQ="
  },
  {
    "pname": "Sentry.Serilog",
    "version": "6.1.0",
    "hash": "sha256-V5Th0L9xNZP27nqGiLrIJXlqEF+iCcATb5yWgJ4h/IE="
  },
  {
    "pname": "Serilog",
    "version": "4.3.1",
    "hash": "sha256-TY+GaQYnyDfOGl0gi67xDyUMOuV/mjz8BU66/UsmStI="
  },
  {
    "pname": "Serilog.Expressions",
    "version": "5.0.0",
    "hash": "sha256-xpAT8U0pzTvRGa/qBd2M3YOQDD1xgAHCMVN9NEz0L4E="
  },
  {
    "pname": "Serilog.Sinks.Console",
    "version": "6.1.1",
    "hash": "sha256-CfIg4Us4kSMQAn6rU2rsAeE22g6MpFiZdhoZWySpZeY="
  },
  {
    "pname": "Serilog.Sinks.File",
    "version": "7.0.0",
    "hash": "sha256-LxZYUoUPkCjIIVarJilnXnqQiMrFNJtoRilmzTNtUjo="
  },
  {
    "pname": "SharpCompress",
    "version": "0.44.5",
    "hash": "sha256-aukmJzrgVS2hugVUNH+FHJuaC2VomBNFy6g8furI3tE="
  },
  {
    "pname": "SkiaSharp",
    "version": "2.88.9",
    "hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
  },
  {
    "pname": "SkiaSharp.NativeAssets.Linux",
    "version": "2.88.9",
    "hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
  },
  {
    "pname": "SkiaSharp.NativeAssets.macOS",
    "version": "2.88.9",
    "hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
  },
  {
    "pname": "SkiaSharp.NativeAssets.WebAssembly",
    "version": "2.88.9",
    "hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
  },
  {
    "pname": "SkiaSharp.NativeAssets.Win32",
    "version": "2.88.9",
    "hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
  },
  {
    "pname": "SQLitePCLRaw.bundle_e_sqlite3",
    "version": "2.1.11",
    "hash": "sha256-kWRapMTVEfcc0DxnI9Ai1+RwAAcR2+HUu+WF+OeLJCs="
  },
  {
    "pname": "SQLitePCLRaw.core",
    "version": "2.1.11",
    "hash": "sha256-s/fxEoYlNf9c2C4HZueMzPCBvpiViDVlSpg7epB0GXY="
  },
  {
    "pname": "SQLitePCLRaw.lib.e_sqlite3",
    "version": "2.1.11",
    "hash": "sha256-ZmffbHNgnLUdsPbikilEAihxXl1MedIBQ1Xzt9226Bw="
  },
  {
    "pname": "SQLitePCLRaw.provider.e_sqlite3",
    "version": "2.1.11",
    "hash": "sha256-LdfV325AmYgBOwmwP7MNZxMJZkNO6bwrHvB6C5SyItA="
  },
  {
    "pname": "Tmds.DBus.Protocol",
    "version": "0.21.3",
    "hash": "sha256-HVEIHSeSe29ergHxsNvWYu3o7Ai8VZKo09yFn+miTnI="
  },
  {
    "pname": "Unosquare.Swan.Lite",
    "version": "3.1.0",
    "hash": "sha256-PL8N3CqIz/wku8/mkRMC3X868Byv47C20/rBLBhkS3o="
  },
  {
    "pname": "ValveKeyValue",
    "version": "0.20.0.417",
    "hash": "sha256-CmnexfgjFT4aLeSXargNyIJlRDFh6lyPW4Kx+m68nzk="
  }
]
+86 −0
Original line number Diff line number Diff line
{
  buildDotnetModule,
  dotnetCorePackages,
  fetchFromGitHub,
  lib,
  nix-update-script,
  copyDesktopItems,
  makeDesktopItem,
  icoutils,

  ffmpeg,
  yt-dlp,
  deno,
}:
buildDotnetModule (finalAttrs: {
  pname = "vrcvideocacher";
  version = "2026.4.4";

  src = fetchFromGitHub {
    owner = "EllyVR";
    repo = "VRCVideoCacher";
    tag = finalAttrs.version;
    hash = "sha256-VollU7um18HYeIyXC8PzqcNbBYM3gd2JzxSql4VSFWw=";
  };

  __structuredAttrs = true;
  strictDeps = true;

  dotnet-sdk = dotnetCorePackages.sdk_10_0;
  dotnet-runtime = dotnetCorePackages.runtime_10_0;

  projectFile = "VRCVideoCacher/VRCVideoCacher.csproj";
  nugetDeps = ./deps.json;

  executables = [ "VRCVideoCacher" ];
  selfContainedBuild = true;

  nativeBuildInputs = [
    copyDesktopItems
    icoutils
  ];

  makeWrapperArgs = [
    "--add-flags"
    "--global-path"

    "--prefix"
    "PATH"
    ":"
    (lib.makeBinPath [
      ffmpeg
      yt-dlp
      deno
    ])
  ];
  postInstall = ''
    icotool --icon -x $src/VRCVideoCacher/Assets/icon.ico

    for i in 16 32 48 64 128 256; do
      size=''${i}x''${i}
      install -Dm444 *_''${size}x*.png $out/share/icons/hicolor/$size/apps/vrcvideocacher.png
    done
  '';

  desktopItems = [
    (makeDesktopItem {
      name = "vrcvideocacher";
      desktopName = "VRCVideoCacher";
      exec = finalAttrs.meta.mainProgram;
      comment = finalAttrs.meta.description;
      icon = "vrcvideocacher";
      categories = [ "Utility" ];
    })
  ];

  passthru.updateScript = nix-update-script { };

  meta = {
    description = "Cache VRChat videos locally and fix YouTube videos that fail to load";
    homepage = "https://github.com/EllyVR/VRCVideoCacher";
    license = lib.licenses.unfree;
    maintainers = with lib.maintainers; [ coolGi ];
    mainProgram = "VRCVideoCacher";
    platforms = [ "x86_64-linux" ];
  };
})