diff --git a/pkgs/by-name/vr/vrcvideocacher/deps.json b/pkgs/by-name/vr/vrcvideocacher/deps.json new file mode 100644 index 000000000000..bd6319b7d40a --- /dev/null +++ b/pkgs/by-name/vr/vrcvideocacher/deps.json @@ -0,0 +1,352 @@ +[ + { + "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=" + } +] diff --git a/pkgs/by-name/vr/vrcvideocacher/package.nix b/pkgs/by-name/vr/vrcvideocacher/package.nix new file mode 100644 index 000000000000..2eb3e99e5806 --- /dev/null +++ b/pkgs/by-name/vr/vrcvideocacher/package.nix @@ -0,0 +1,86 @@ +{ + 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" ]; + }; +})