{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/category/linux/feed/json/ -- and add it your reader.", "next_url": "https://matoken.org/blog/category/linux/feed/json/?paged=2", "home_page_url": "https://matoken.org/blog/category/linux/", "feed_url": "https://matoken.org/blog/category/linux/feed/json/", "language": "ja", "title": "Linux – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=5486", "url": "https://matoken.org/blog/2026/05/26/virsh-console-console-connection-failed/", "title": "virsh console\u3067\u4eee\u60f3\u30de\u30b7\u30f3\u306b\u63a5\u7d9a\u3067\u304d\u306a\u3044", "content_html": "
\n
\n
\n
\n\"virt\n
\n
\n
\n

virsh console\u30b3\u30de\u30f3\u30c9\u3067vm\u306b\u7e4b\u304c\u3089\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ virsh console openbsd7.9\nerror: operation failed: Active console session exists for this domain
\n
\n
\n

\n
\n

\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u691c\u7d22\u3057\u3066daemon\u3092\u518d\u8d77\u52d5\u3057\u305f\u308a\uff0chost\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u99c4\u76ee\u3067\u3059\uff0e

\n
\n\n
\n

virsh\u306eman\u3092\u898b\u308b\u3068\u3053\u3093\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\uff0e

\n
\n
\n
\n
\n
\n
Option\u2010ally the --force flag may be specified, requesting to disconnect any existing sessions, such as in a case of a broken connection.
\n
\n
\n
\n
\n— `man 1 virsh`\n
\n
\n
\n

--force \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u3092\u4ed8\u3051\u308b\u3068\u7e4b\u304c\u308a\uff0c\u4e00\u5ea6\u7e4b\u304c\u308b\u3068 --force \u7121\u3057\u3067\u3082\u7e4b\u304c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ virsh console openbsd7.9 --force\nConnected to domain 'openbsd7.9'\nEscape character is ^] (Ctrl + ])\n^]\n$ virsh console openbsd7.9\nConnected to domain 'openbsd7.9'\nEscape character is ^] (Ctrl + ])\n\nfugu$ pfetch\n      _____       matoken@fugu.matoken.org\n    \\-     -/     os     OpenBSD 7.9\n \\_/         \\    host   pc-i440fx-9.1\n |        O O |   uptime 1h 56m\n |_  <   )  3 )   pkgs   117\n / \\         /    memory 169M / 989M\n    /-_____-\\\n\nfugu$
\n
\n
\n
\n

\u6050\u3089\u304f\u96fb\u6c60\u5207\u308c\u3067\u30db\u30b9\u30c8\u306eOS\u304c\u5f37\u5236\u7d42\u4e86\u3057\u305f\u3068\u304d\u306b\u65e2\u5b58\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u60c5\u5831\u304c\u6b8b\u3063\u3066\u3057\u307e\u3044\u4eca\u56de\u306e\u3088\u3046\u306a\u72b6\u614b\u306b\u306a\u3063\u305f\u306e\u3060\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W libvirt-clients libvirt-daemon\nlibvirt-clients 12.3.0-1\nlibvirt-daemon  12.3.0-1\n$ uname -rm\n7.0.9+deb14-amd64 x86_64\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "virsh console\u30b3\u30de\u30f3\u30c9\u3067vm\u306b\u7e4b\u304c\u3089\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ virsh console openbsd7.9\nerror: operation failed: Active console session exists for this domain\n\n\n\n\n\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u691c\u7d22\u3057\u3066daemon\u3092\u518d\u8d77\u52d5\u3057\u305f\u308a\uff0chost\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u99c4\u76ee\u3067\u3059\uff0e\n\n\n\n\nerror: \u64cd\u4f5c\u306f\u5931\u6557\u3057\u307e\u3057\u305f: \u4f7f\u7528\u4e2d\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u3053\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u5bfe\u3057\u3066\u5b58\u5728\u3057\u307e\u3059 – \u9593\u9055\u3044\u3060\u3089\u3051\u306e\u5099\u5fd8\u9332\n\n\n\n\nvirsh\u306eman\u3092\u898b\u308b\u3068\u3053\u3093\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\uff0e\n\n\n\n\n\nOption\u2010ally the --force flag may be specified, requesting to disconnect any existing sessions, such as in a case of a broken connection.\n\n\n\n\n— `man 1 virsh`\n\n\n\n--force \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u3092\u4ed8\u3051\u308b\u3068\u7e4b\u304c\u308a\uff0c\u4e00\u5ea6\u7e4b\u304c\u308b\u3068 --force \u7121\u3057\u3067\u3082\u7e4b\u304c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ virsh console openbsd7.9 --force\nConnected to domain 'openbsd7.9'\nEscape character is ^] (Ctrl + ])\n^]\n$ virsh console openbsd7.9\nConnected to domain 'openbsd7.9'\nEscape character is ^] (Ctrl + ])\n\nfugu$ pfetch\n _____ matoken@fugu.matoken.org\n \\- -/ os OpenBSD 7.9\n \\_/ \\ host pc-i440fx-9.1\n | O O | uptime 1h 56m\n |_ < ) 3 ) pkgs 117\n / \\ / memory 169M / 989M\n /-_____-\\\n\nfugu$\n\n\n\n\u6050\u3089\u304f\u96fb\u6c60\u5207\u308c\u3067\u30db\u30b9\u30c8\u306eOS\u304c\u5f37\u5236\u7d42\u4e86\u3057\u305f\u3068\u304d\u306b\u65e2\u5b58\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u60c5\u5831\u304c\u6b8b\u3063\u3066\u3057\u307e\u3044\u4eca\u56de\u306e\u3088\u3046\u306a\u72b6\u614b\u306b\u306a\u3063\u305f\u306e\u3060\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W libvirt-clients libvirt-daemon\nlibvirt-clients 12.3.0-1\nlibvirt-daemon 12.3.0-1\n$ uname -rm\n7.0.9+deb14-amd64 x86_64\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-05-26T07:16:34+09:00", "date_modified": "2026-05-26T07:18:04+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "virsh", "virt-manager", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5455", "url": "https://matoken.org/blog/2026/05/06/enable-hdd-trash-can/", "title": "\u5916\u4ed8\u3051HDD\u306e\u30b4\u30df\u7bb1\u3092\u6709\u52b9\u306b\u3059\u308b", "content_html": "
\n
\n

\n
\n

\u732b\u304c\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u4e0a\u3092\u6b69\u304f\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\uff0e\u3044\u3064\u306e\u9593\u306b\u304bCapsLock\u3068\u304bNumLock\u3068\u304b\u304c\u639b\u304b\u3063\u3066\u3057\u307e\u3063\u305f\u308a\u3057\u307e\u3059\uff0e
\n\u305d\u306e\u7a0b\u5ea6\u306a\u3089\u3044\u3044\u306e\u3067\u3059\u304c\uff0c\u5148\u65e5\u30d5\u30a1\u30a4\u30e9\u30fc\u304c\u958b\u3044\u305f\u72b6\u614b\u3067Del key \u3092\u62bc\u3055\u308c\u30d5\u30a1\u30a4\u30eb\u304c\u6d88\u3048\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u5916\u4ed8HDD \u3067\u30b4\u30df\u7bb1\u3082\u8a2d\u5b9a\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u30b4\u30df\u7bb1\u304b\u3089\u306e\u5fa9\u6d3b\u3082\u3067\u304d\u307e\u305b\u3093\uff0e

\n
\n
\n

\u5916\u4ed8\u3051HDD\u306e\u30b4\u30df\u7bb1\u3092\u6709\u52b9\u306b\u3057\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

freedesktop.org\u306b\u6587\u7ae0\u304c\u3042\u308a\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

It MAY also choose to provide trashing in the \u201ctop directories\u201d of some or all mounted resources. This trashing is done in two ways, described below as (1) and (2).
\n(1) An administrator can create an $topdir/.Trash directory. The permissions on this directories should permit all users who can trash files at all to write in it.; and the \u201csticky bit\u201d in the permissions must be set, if the file system supports it.
\n :
\n(2) If an $topdir/.Trash directory is absent, an $topdir/.Trash-$uid directory is to be used as the user\u2019s trash directory for this device/partition. $uid is the user\u2019s numeric identifier.
\n :

\n
\n
\n\n
\n
\n

\u81ea\u5206\u3057\u304b\u4f7f\u308f\u306a\u3044\u306e\u3067\uff0cHDD\u306eroot\u306b\uff0c.Trash-$uid \u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u3063\u3066\u304a\u3051\u3070\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ cd /run/media/matoken/6f12b6e0-e167-4afc-b30b-ad30c2c9f446 (1)\n$ sudo install -d -m 700 -o \"$(id -u)\" -g \"$(id -g)\" ./.Trash-\"$(id -u)\" (2)\n$ ls -A | grep .Trash-\n.Trash-1000\n$ id --user\n1000
\n
\n
\n
\n
    \n
  1. \n

    \u5bfe\u8c61\u306eHDD\u306etop dir\u306b\u79fb\u52d5

    \n
  2. \n
  3. \n

    \u81ea\u5206\u7528\u30b4\u30df\u7bb1\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210

    \n
  4. \n
\n
\n
\n

\u3053\u306e\u72b6\u614b\u3067\u30d5\u30a1\u30a4\u30e9\u30fc(\u4eca\u56de\u306fPCManFM-Qt)\u3067HDD\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3059\u308b\u3068\u30b4\u30df\u7bb1\u306b\u79fb\u52d5\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e
\n\u3053\u308c\u3067\u307e\u305f\u732b\u306b\u30d5\u30a1\u30a4\u30eb\u304c\u6d88\u3055\u308c\u3066\u3082\u5fa9\u65e7\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3057\u305f\"\ud83d\udc08\"\"\ud83d\udc3e\"

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W pcmanfm-qt*\npcmanfm-qt\t2.3.0-1\npcmanfm-qt-l10n\t2.3.0-1\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux forky/sid\nRelease:\tn/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u732b\u304c\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u4e0a\u3092\u6b69\u304f\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\uff0e\u3044\u3064\u306e\u9593\u306b\u304bCapsLock\u3068\u304bNumLock\u3068\u304b\u304c\u639b\u304b\u3063\u3066\u3057\u307e\u3063\u305f\u308a\u3057\u307e\u3059\uff0e\n\u305d\u306e\u7a0b\u5ea6\u306a\u3089\u3044\u3044\u306e\u3067\u3059\u304c\uff0c\u5148\u65e5\u30d5\u30a1\u30a4\u30e9\u30fc\u304c\u958b\u3044\u305f\u72b6\u614b\u3067Del key \u3092\u62bc\u3055\u308c\u30d5\u30a1\u30a4\u30eb\u304c\u6d88\u3048\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u5916\u4ed8HDD \u3067\u30b4\u30df\u7bb1\u3082\u8a2d\u5b9a\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u30b4\u30df\u7bb1\u304b\u3089\u306e\u5fa9\u6d3b\u3082\u3067\u304d\u307e\u305b\u3093\uff0e\n\n\n\u5916\u4ed8\u3051HDD\u306e\u30b4\u30df\u7bb1\u3092\u6709\u52b9\u306b\u3057\u307e\u3057\u305f\uff0e\n\n\n\nfreedesktop.org\u306b\u6587\u7ae0\u304c\u3042\u308a\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\nIt MAY also choose to provide trashing in the \u201ctop directories\u201d of some or all mounted resources. This trashing is done in two ways, described below as (1) and (2).\n(1) An administrator can create an $topdir/.Trash directory. The permissions on this directories should permit all users who can trash files at all to write in it.; and the \u201csticky bit\u201d in the permissions must be set, if the file system supports it.\n :\n(2) If an $topdir/.Trash directory is absent, an $topdir/.Trash-$uid directory is to be used as the user\u2019s trash directory for this device/partition. $uid is the user\u2019s numeric identifier.\n :\n\n\n\n— Trash Specification – Trash Specification v1.0\n\n\n\n\u81ea\u5206\u3057\u304b\u4f7f\u308f\u306a\u3044\u306e\u3067\uff0cHDD\u306eroot\u306b\uff0c.Trash-$uid \u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u3063\u3066\u304a\u3051\u3070\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ cd /run/media/matoken/6f12b6e0-e167-4afc-b30b-ad30c2c9f446 (1)\n$ sudo install -d -m 700 -o \"$(id -u)\" -g \"$(id -g)\" ./.Trash-\"$(id -u)\" (2)\n$ ls -A | grep .Trash-\n.Trash-1000\n$ id --user\n1000\n\n\n\n\n\n\u5bfe\u8c61\u306eHDD\u306etop dir\u306b\u79fb\u52d5\n\n\n\u81ea\u5206\u7528\u30b4\u30df\u7bb1\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\n\n\n\n\n\u3053\u306e\u72b6\u614b\u3067\u30d5\u30a1\u30a4\u30e9\u30fc(\u4eca\u56de\u306fPCManFM-Qt)\u3067HDD\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3059\u308b\u3068\u30b4\u30df\u7bb1\u306b\u79fb\u52d5\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\u3053\u308c\u3067\u307e\u305f\u732b\u306b\u30d5\u30a1\u30a4\u30eb\u304c\u6d88\u3055\u308c\u3066\u3082\u5fa9\u65e7\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3057\u305f\n\n\n\u74b0\u5883\n\n$ dpkg-query -W pcmanfm-qt*\npcmanfm-qt\t2.3.0-1\npcmanfm-qt-l10n\t2.3.0-1\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux forky/sid\nRelease:\tn/a\n$ arch\nx86_64", "date_published": "2026-05-06T06:12:52+09:00", "date_modified": "2026-05-06T06:12:53+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "trash can", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5450", "url": "https://matoken.org/blog/2026/05/05/bifrost/", "title": "\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3068PC\u9593\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u3084\u308a\u53d6\u308a\u3092\u3059\u308bBifrost", "content_html": "
\n
\n

\n
\n

Android\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3068PC\u9593\u306e\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u306bBluetooth\u3092\u3088\u304f\u4f7f\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\u6700\u8fd12.4GHz\u306eWi-Fi\u3092\u4f7f\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u8ee2\u9001\u306b\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\uff0e
\n\u6709\u7dda\u3060\u3068\u78ba\u5b9f\u3067\u3059\u304c\u5c11\u3057\u9762\u5012\uff0e\u30a2\u30c9\u30db\u30c3\u30af\u306b\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u7528\u306ehttpd\u3092\u8d77\u52d5\u3057\u3066\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3<→PC\u9593\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u3084\u308a\u53d6\u308a\u304c\u51fa\u6765\u308bBifrost\u3068\u3044\u3046\u3082\u306e\u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u305f\u898b\u307e\u3057\u305f\uff0e

\n
\n

\n\n
\n
\n
\n

\u5c0e\u5165

\n
\n

\u5c0e\u5165\u306fGithub Releases\u304b\u3089\u30d3\u30eb\u30c9\u6e08\u30d0\u30a4\u30ca\u30ea\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u304b\uff0c go install github.com/axiom0x0/bifrost@latest \u3067\u5c0e\u5165\u3067\u304d\u307e\u3059\uff0eLinux armhf\u3082\u3042\u308b\u306e\u304c\u5b09\u3057\u3044\uff0e

\n
\n
\n
\n

\u5229\u7528\u4f8b

\n
\n
\n
$ bifrost\nbifrost v1.1.0 \u2014 bridge files to your phone via QR code\n\nUsage:\n  bifrost <file> [port]              send a file (+ upload)\n  bifrost -f <file> [-p port]        send a file (+ upload)\n  bifrost -r [-o dir] [-p port]      receive files only\n  bifrost -d <dir> [-p port]         browse a directory (+ upload)\n\n  Add -e to any mode for encrypted transfers.\n\nFlags:\n  -1\texit after first completed transfer\n  -d string\n    \tdirectory to browse and serve\n  -e\tenable end-to-end encryption\n  -f string\n    \tfile to serve (send mode)\n  -o string\n    \toutput directory for received files (default \".\")\n  -p int\n    \tport to serve on (default 8888)\n  -r\treceive-only mode\n  -v\tprint version and exit\n\nExamples:\n  bifrost myfile.gpx              send file, allow uploads back\n  bifrost -f photo.jpg -p 9090    send on custom port\n  bifrost -r -o ~/Downloads       receive files only\n  bifrost -d ~/Photos             browse directory\n  bifrost -e myfile.gpx           send with encryption\n  bifrost -e -r                   receive with encryption
\n
\n
\n
\n

\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u6642\u306b\u306fQR code\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u305d\u308c\u3092\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u5074\u3067\u8aad\u307f\u8fbc\u3080\u3068\u4fbf\u5229\u3067\u3059\uff0e\u52ff\u8ad6URL\u306e\u5165\u529b\u3067\u3082ok\uff0e

\n
\n
\n
pc\u304b\u3089\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3078\u306e\u30d5\u30a1\u30a4\u30eb\u9001\u4fe1\u4f8b
\n
\n
$ bifrost file.txt\n\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584 \u2580\u2580\u2580\u2584\u2588\u2584\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588   \u2588 \u2588\u2580 \u2580\u2584\u2588\u2584\u2580\u2580\u2584\u2588 \u2588   \u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588 \u2588\u2584\u2580\u2584\u2588\u2580\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588 \u2588 \u2588\u2584\u2588\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588  \u2588 \u2584\u2584\u2580\u2580\u2580\u2580\u2584 \u2588 \u2584\u2588 \u2580\u2580\u2584\u2588 \u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2580\u2584 \u2580\u2584 \u2584\u2584\u2588\u2584\u2588\u2580\u2588\u2584\u2584\u2584\u2588\u2588 \u2580\u2580\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2588\u2588 \u2588\u2584\u2584\u2584\u2580\u2584 \u2580 \u2580\u2584\u2588 \u2580 \u2588\u2580\u2588\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580\u2584 \u2588\u2580\u2584\u2584\u2584 \u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2588\u2580\u2584\u2588\u2580\u2584\u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2580\u2588 \u2588\u2584\u2588\u2584\u2588 \u2584\u2584\u2584 \u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2588\u2580\u2580\u2588 \u2588\u2588 \u2588\u2584\u2588 \u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588   \u2588 \u2588\u2580\u2584 \u2588\u2588\u2584\u2588\u2588 \u2584\u2584 \u2584\u2588\u2580\u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2584\u2580 \u2580\u2580\u2580\u2584\u2588\u2588 \u2588\u2588 \u2584 \u2584\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2584\u2588\u2588\u2584\u2584\u2588\u2588\u2588\u2588\u2584\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\n\n  Mode:  send\n  File:  file.txt (126.6 KB)\n  URL:   http://192.168.100.22:8888\n  Port:  8888\n\nScan QR to download (uploads also accepted).\nPress Ctrl+C to stop.
\n
\n
\n
\n

\u53d7\u8a3a\u6642\u306b\u306f -r \u30aa\u30d7\u30b7\u30e7\u30f3\u3068\uff0c -o \u3067\u53d7\u4fe1\u5148(\u65e2\u5b9a\u5024\u306f\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea)\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e

\n
\n
\n
\u30d5\u30a1\u30a4\u30eb\u53d7\u4fe1\u4f8b
\n
\n
$ bifrost -r -o ~/Downloads/
\n
\n
\n
\n

E2EE\u3092\u6709\u52b9\u306b\u3057\u305f\u3044\u3068\u304d\u306f -e \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\uff0c\u305d\u306e\u307e\u307e\u3060\u3068\u8d77\u52d5\u3057\u3063\u3071\u306a\u3057\u306a\u306e\u3067\uff0c -1 \u30aa\u30d7\u30b7\u30e7\u30f3\u3084\uff0ctimeout\u30b3\u30de\u30f3\u30c9\u3092\u631f\u3080\u3068\u7d42\u4e86\u3057\u5fd8\u308c\u304c\u306a\u304f\u3066\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
timeout\u3067300\u79d2\u306b\u5236\u9650\uff0e1\u56de\u3060\u3051\uff0cE2EE\u3092\u6709\u52b9\u306b\u3057\u3066\u53d7\u4fe1
\n
\n
$ timeout 300 bifrost -1 -e -r -o ~/Downloads/\n\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2584\u2580\u2584 \u2588\u2580\u2584  \u2584\u2588 \u2584\u2584\u2584\u2588\u2580  \u2588 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588   \u2588 \u2588\u2580\u2580\u2584\u2580\u2584\u2580\u2588\u2584\u2584\u2584\u2580\u2588\u2588\u2584 \u2580 \u2580\u2584\u2580\u2588\u2588 \u2588   \u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588 \u2588\u2588\u2580 \u2580\u2580   \u2584\u2580\u2580 \u2584\u2584 \u2588\u2588\u2584\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2584\u2580\u2584\u2580\u2584\u2580 \u2588\u2584\u2580\u2584\u2580 \u2580\u2584\u2588\u2584\u2588\u2584\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2580\u2588\u2588\u2584\u2580\u2584\u2584\u2584\u2588  \u2588\u2580\u2588\u2584\u2584\u2588\u2580 \u2584 \u2580 \u2584 \u2580\u2584\u2580\u2584\u2584\u2584 \u2584\u2588\u2580\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2580 \u2584\u2588 \u2584  \u2584\u2588\u2584 \u2588\u2584 \u2580\u2580  \u2580  \u2584\u2588\u2588\u2588 \u2588\u2584\u2584\u2580\u2584\u2588 \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580  \u2580 \u2580\u2584\u2580\u2580\u2584\u2580\u2584\u2584\u2584\u2584\u2588\u2580\u2588\u2580\u2588\u2580 \u2588\u2580\u2580\u2580\u2584 \u2588\u2580\u2584\u2580\u2580\u2580\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580\u2584\u2580\u2588\u2588\u2584\u2584\u2588\u2588\u2588\u2580 \u2580   \u2588 \u2580\u2588    \u2588\u2588\u2584  \u2588\u2584\u2584\u2588\u2584 \u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580 \u2580\u2588  \u2584 \u2584\u2584\u2584\u2580\u2588\u2584 \u2584\u2580\u2588\u2584 \u2580\u2584\u2584 \u2588\u2580\u2580\u2584\u2580 \u2584\u2588    \u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580 \u2588 \u2588 \u2584\u2580 \u2588\u2588\u2580\u2588  \u2588\u2584 \u2580\u2588\u2584\u2580\u2584 \u2584\u2588\u2588 \u2584 \u2580\u2580\u2580\u2588\u2580\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2580\u2588\u2588\u2580\u2588\u2584\u2584\u2588\u2588 \u2584\u2580\u2584\u2584 \u2580 \u2588\u2584\u2588\u2584 \u2580\u2580\u2588  \u2584\u2588\u2584\u2580\u2580\u2588\u2584\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2580\u2580\u2580 \u2584\u2584\u2588\u2584\u2580 \u2584\u2588\u2588\u2588\u2584 \u2588\u2584\u2588 \u2580\u2588\u2584\u2588\u2588\u2584\u2584\u2584\u2580\u2580    \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2580 \u2588  \u2584 \u2588\u2584\u2584 \u2584\u2580 \u2584\u2584\u2588\u2580\u2580\u2584\u2588\u2588\u2584\u2588\u2588\u2584\u2580\u2580 \u2584\u2584\u2580\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2580 \u2584 \u2584 \u2588\u2580\u2580\u2588\u2580 \u2580\u2580\u2580 \u2580\u2580 \u2584 \u2584\u2584\u2584\u2580\u2580 \u2580\u2584\u2588 \u2580\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2588\u2584\u2588\u2588\u2584\u2588\u2580\u2584\u2584\u2580 \u2584 \u2580\u2580\u2588\u2580\u2580\u2584 \u2584\u2580\u2580\u2588\u2584\u2580 \u2584\u2584\u2584 \u2588\u2580\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2584\u2588\u2584\u2584  \u2580\u2584\u2588 \u2580\u2588\u2580\u2588\u2580\u2584\u2588\u2588\u2580\u2580 \u2588\u2584\u2588  \u2580\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588   \u2588 \u2588\u2584\u2580\u2580 \u2584\u2584 \u2584\u2580\u2580\u2584 \u2580\u2588\u2584\u2580\u2580\u2580\u2584\u2580\u2584\u2584  \u2584\u2580 \u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2580\u2580\u2580\u2584 \u2580\u2588\u2584\u2580\u2584\u2588\u2584 \u2588 \u2584\u2584\u2588\u2584\u2584\u2580 \u2580\u2580\u2580 \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2584\u2584\u2588\u2584\u2588\u2588\u2588\u2584\u2584\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2584\u2584\u2588\u2588\u2584\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\n\n  Mode:  receive 🔒\n  Save:  /home/matoken/Downloads\n  URL:   http://192.168.100.22:8888#redMu2lgAsN_jmLduAoaM6lVmvxslMGNDl917QrfZ8g\n  Port:  8888\n\nScan QR to upload files.\nPress Ctrl+C to stop.
\n
\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
$ bifrost -v\nbifrost v1.1.0\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux forky/sid\nRelease:\tn/a\n$ arch\nx86_64
\n
\n
\n
\n", "content_text": "Android\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3068PC\u9593\u306e\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u306bBluetooth\u3092\u3088\u304f\u4f7f\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\u6700\u8fd12.4GHz\u306eWi-Fi\u3092\u4f7f\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u8ee2\u9001\u306b\u5931\u6557\u3059\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\uff0e\n\u6709\u7dda\u3060\u3068\u78ba\u5b9f\u3067\u3059\u304c\u5c11\u3057\u9762\u5012\uff0e\u30a2\u30c9\u30db\u30c3\u30af\u306b\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u7528\u306ehttpd\u3092\u8d77\u52d5\u3057\u3066\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3<→PC\u9593\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u3084\u308a\u53d6\u308a\u304c\u51fa\u6765\u308bBifrost\u3068\u3044\u3046\u3082\u306e\u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u305f\u898b\u307e\u3057\u305f\uff0e\n\n\n\n\n\naxiom0x0/bifrost: Bridge files between your computer and and phone via QR code.\n\n\n\n\n\n\n\u5c0e\u5165\n\n\u5c0e\u5165\u306fGithub Releases\u304b\u3089\u30d3\u30eb\u30c9\u6e08\u30d0\u30a4\u30ca\u30ea\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u304b\uff0c go install github.com/axiom0x0/bifrost@latest \u3067\u5c0e\u5165\u3067\u304d\u307e\u3059\uff0eLinux armhf\u3082\u3042\u308b\u306e\u304c\u5b09\u3057\u3044\uff0e\n\n\n\n\u5229\u7528\u4f8b\n\n\n$ bifrost\nbifrost v1.1.0 \u2014 bridge files to your phone via QR code\n\nUsage:\n bifrost <file> [port] send a file (+ upload)\n bifrost -f <file> [-p port] send a file (+ upload)\n bifrost -r [-o dir] [-p port] receive files only\n bifrost -d <dir> [-p port] browse a directory (+ upload)\n\n Add -e to any mode for encrypted transfers.\n\nFlags:\n -1\texit after first completed transfer\n -d string\n \tdirectory to browse and serve\n -e\tenable end-to-end encryption\n -f string\n \tfile to serve (send mode)\n -o string\n \toutput directory for received files (default \".\")\n -p int\n \tport to serve on (default 8888)\n -r\treceive-only mode\n -v\tprint version and exit\n\nExamples:\n bifrost myfile.gpx send file, allow uploads back\n bifrost -f photo.jpg -p 9090 send on custom port\n bifrost -r -o ~/Downloads receive files only\n bifrost -d ~/Photos browse directory\n bifrost -e myfile.gpx send with encryption\n bifrost -e -r receive with encryption\n\n\n\n\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u6642\u306b\u306fQR code\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u305d\u308c\u3092\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u5074\u3067\u8aad\u307f\u8fbc\u3080\u3068\u4fbf\u5229\u3067\u3059\uff0e\u52ff\u8ad6URL\u306e\u5165\u529b\u3067\u3082ok\uff0e\n\n\npc\u304b\u3089\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3078\u306e\u30d5\u30a1\u30a4\u30eb\u9001\u4fe1\u4f8b\n\n$ bifrost file.txt\n\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2584 \u2580\u2580\u2580\u2584\u2588\u2584\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588\u2580 \u2580\u2584\u2588\u2584\u2580\u2580\u2584\u2588 \u2588 \u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588 \u2588\u2584\u2580\u2584\u2588\u2580\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588 \u2588 \u2588\u2584\u2588\u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2584\u2584\u2580\u2580\u2580\u2580\u2584 \u2588 \u2584\u2588 \u2580\u2580\u2584\u2588 \u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2580\u2584 \u2580\u2584 \u2584\u2584\u2588\u2584\u2588\u2580\u2588\u2584\u2584\u2584\u2588\u2588 \u2580\u2580\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2588\u2588 \u2588\u2584\u2584\u2584\u2580\u2584 \u2580 \u2580\u2584\u2588 \u2580 \u2588\u2580\u2588\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580\u2584 \u2588\u2580\u2584\u2584\u2584 \u2584\u2588 \u2588\u2584\u2584\u2584\u2584\u2588\u2580\u2584\u2588\u2580\u2584\u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2580\u2588 \u2588\u2584\u2588\u2584\u2588 \u2584\u2584\u2584 \u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588 \u2588\u2580\u2580\u2588 \u2588\u2588 \u2588\u2584\u2588 \u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588\u2580\u2584 \u2588\u2588\u2584\u2588\u2588 \u2584\u2584 \u2584\u2588\u2580\u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2584\u2580 \u2580\u2580\u2580\u2584\u2588\u2588 \u2588\u2588 \u2584 \u2584\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2584\u2588\u2588\u2584\u2584\u2588\u2588\u2588\u2588\u2584\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\n\n Mode: send\n File: file.txt (126.6 KB)\n URL: http://192.168.100.22:8888\n Port: 8888\n\nScan QR to download (uploads also accepted).\nPress Ctrl+C to stop.\n\n\n\n\u53d7\u8a3a\u6642\u306b\u306f -r \u30aa\u30d7\u30b7\u30e7\u30f3\u3068\uff0c -o \u3067\u53d7\u4fe1\u5148(\u65e2\u5b9a\u5024\u306f\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea)\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\n\n\n\u30d5\u30a1\u30a4\u30eb\u53d7\u4fe1\u4f8b\n\n$ bifrost -r -o ~/Downloads/\n\n\n\nE2EE\u3092\u6709\u52b9\u306b\u3057\u305f\u3044\u3068\u304d\u306f -e \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\uff0c\u305d\u306e\u307e\u307e\u3060\u3068\u8d77\u52d5\u3057\u3063\u3071\u306a\u3057\u306a\u306e\u3067\uff0c -1 \u30aa\u30d7\u30b7\u30e7\u30f3\u3084\uff0ctimeout\u30b3\u30de\u30f3\u30c9\u3092\u631f\u3080\u3068\u7d42\u4e86\u3057\u5fd8\u308c\u304c\u306a\u304f\u3066\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\ntimeout\u3067300\u79d2\u306b\u5236\u9650\uff0e1\u56de\u3060\u3051\uff0cE2EE\u3092\u6709\u52b9\u306b\u3057\u3066\u53d7\u4fe1\n\n$ timeout 300 bifrost -1 -e -r -o ~/Downloads/\n\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2584\u2580\u2584 \u2588\u2580\u2584 \u2584\u2588 \u2584\u2584\u2584\u2588\u2580 \u2588 \u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588\u2580\u2580\u2584\u2580\u2584\u2580\u2588\u2584\u2584\u2584\u2580\u2588\u2588\u2584 \u2580 \u2580\u2584\u2580\u2588\u2588 \u2588 \u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588 \u2588\u2588\u2580 \u2580\u2580 \u2584\u2580\u2580 \u2584\u2584 \u2588\u2588\u2584\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588 \u2580\u2584\u2580\u2584\u2580\u2584\u2580 \u2588\u2584\u2580\u2584\u2580 \u2580\u2584\u2588\u2584\u2588\u2584\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2580\u2588\u2588\u2584\u2580\u2584\u2584\u2584\u2588 \u2588\u2580\u2588\u2584\u2584\u2588\u2580 \u2584 \u2580 \u2584 \u2580\u2584\u2580\u2584\u2584\u2584 \u2584\u2588\u2580\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2580 \u2584\u2588 \u2584 \u2584\u2588\u2584 \u2588\u2584 \u2580\u2580 \u2580 \u2584\u2588\u2588\u2588 \u2588\u2584\u2584\u2580\u2584\u2588 \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580 \u2580 \u2580\u2584\u2580\u2580\u2584\u2580\u2584\u2584\u2584\u2584\u2588\u2580\u2588\u2580\u2588\u2580 \u2588\u2580\u2580\u2580\u2584 \u2588\u2580\u2584\u2580\u2580\u2580\u2584\u2584 \u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580\u2584\u2580\u2588\u2588\u2584\u2584\u2588\u2588\u2588\u2580 \u2580 \u2588 \u2580\u2588 \u2588\u2588\u2584 \u2588\u2584\u2584\u2588\u2584 \u2588\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580 \u2580\u2588 \u2584 \u2584\u2584\u2584\u2580\u2588\u2584 \u2584\u2580\u2588\u2584 \u2580\u2584\u2584 \u2588\u2580\u2580\u2584\u2580 \u2584\u2588 \u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2580 \u2588 \u2588 \u2584\u2580 \u2588\u2588\u2580\u2588 \u2588\u2584 \u2580\u2588\u2584\u2580\u2584 \u2584\u2588\u2588 \u2584 \u2580\u2580\u2580\u2588\u2580\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2580\u2588\u2588\u2580\u2588\u2584\u2584\u2588\u2588 \u2584\u2580\u2584\u2584 \u2580 \u2588\u2584\u2588\u2584 \u2580\u2580\u2588 \u2584\u2588\u2584\u2580\u2580\u2588\u2584\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2580\u2580\u2580 \u2584\u2584\u2588\u2584\u2580 \u2584\u2588\u2588\u2588\u2584 \u2588\u2584\u2588 \u2580\u2588\u2584\u2588\u2588\u2584\u2584\u2584\u2580\u2580 \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2580 \u2588 \u2584 \u2588\u2584\u2584 \u2584\u2580 \u2584\u2584\u2588\u2580\u2580\u2584\u2588\u2588\u2584\u2588\u2588\u2584\u2580\u2580 \u2584\u2584\u2580\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2580 \u2584 \u2584 \u2588\u2580\u2580\u2588\u2580 \u2580\u2580\u2580 \u2580\u2580 \u2584 \u2584\u2584\u2584\u2580\u2580 \u2580\u2584\u2588 \u2580\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2588\u2584\u2588\u2588\u2584\u2588\u2580\u2584\u2584\u2580 \u2584 \u2580\u2580\u2588\u2580\u2580\u2584 \u2584\u2580\u2580\u2588\u2584\u2580 \u2584\u2584\u2584 \u2588\u2580\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2584\u2584\u2584\u2584\u2584 \u2588\u2584\u2588\u2584\u2584 \u2580\u2584\u2588 \u2580\u2588\u2580\u2588\u2580\u2584\u2588\u2588\u2580\u2580 \u2588\u2584\u2588 \u2580\u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588 \u2588 \u2588\u2584\u2580\u2580 \u2584\u2584 \u2584\u2580\u2580\u2584 \u2580\u2588\u2584\u2580\u2580\u2580\u2584\u2580\u2584\u2584 \u2584\u2580 \u2584\u2580\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588 \u2588\u2584\u2584\u2584\u2588 \u2588\u2588\u2580\u2580\u2580\u2584 \u2580\u2588\u2584\u2580\u2584\u2588\u2584 \u2588 \u2584\u2584\u2588\u2584\u2584\u2580 \u2580\u2580\u2580 \u2580\u2588\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2584\u2584\u2588\u2584\u2588\u2588\u2588\u2584\u2584\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2584\u2584\u2588\u2588\u2584\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588\u2588\u2588\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\n\n Mode: receive 🔒\n Save: /home/matoken/Downloads\n URL: http://192.168.100.22:8888#redMu2lgAsN_jmLduAoaM6lVmvxslMGNDl917QrfZ8g\n Port: 8888\n\nScan QR to upload files.\nPress Ctrl+C to stop.\n\n\n\n\n\u74b0\u5883\n\n\n$ bifrost -v\nbifrost v1.1.0\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux forky/sid\nRelease:\tn/a\n$ arch\nx86_64", "date_published": "2026-05-05T05:55:07+09:00", "date_modified": "2026-05-05T05:55:08+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Bifrost", "smartphone", "Debian", "Linux" ] }, { "id": "https://matoken.org/blog/?p=5442", "url": "https://matoken.org/blog/2026/04/22/traffic-could-no-longer-be-measured-with-vnstat/", "title": "vnStat\u3067\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u8a08\u6e2c\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3044\u305f", "content_html": "
\n
\n

\n
\n

\u3057\u3070\u3089\u304f\u524d\u304b\u3089vnStat \u3068\u3044\u3046\u30c4\u30fc\u30eb\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u8a08\u6e2c\u3057\u3066\u3082\u3089\u3063\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n\n
\n

\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u901a\u4fe1\u6599\u3092\u78ba\u8a8d\u3057\u305f\u308a\u3068\u3044\u3063\u305f\u3053\u3068\u306b\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e
\n\u3057\u304b\u3057\u5148\u65e5\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u5f8c\u306b\u901a\u4fe1\u6599\u3092\u78ba\u8a8d\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u3046\u307e\u304f\u884c\u304d\u307e\u305b\u3093\uff0e

\n
\n

\n
\n

\u30ec\u30f3\u30b8\u3092\u9593\u9055\u3048\u305f\u304b\u306a\u3068\u601d\u3044\u307e\u3057\u305f\u304c\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u4ee5\u5916\u540c\u3058\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u4ed6\u306e\u7aef\u672b\u3067\u5b9f\u884c\u3059\u308b\u3068\u51fa\u3066\u6765\u308b\u306e\u3067\u30ec\u30f3\u30b8\u306f\u6b63\u3057\u305d\u3046\uff0e

\n
\n
\n
\n
$ vnstat -i enx349971e11a0f -b '2026-04-19 14:00' -e '2026-04-20 00:40' -h\nNo hourly data available for given date range.
\n
\n
\n
\n

-l \u3067\u30e9\u30a4\u30d6\u30e2\u30fc\u30c9\u3060\u3068\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\u304c\uff0c -h \u3084 -5 \u3092\u53e9\u304f\u3068\u52d5\u304f\u3051\u3069\u53e4\u3044\u30c7\u30fc\u30bf\u3057\u304b\u51fa\u3066\u304d\u307e\u305b\u3093\uff0e

\n
\n
\n
\n
$ vnstat -i enx349971e11a0f -h\n\n enx349971e11a0f  /  hourly\n\n         hour        rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n     2026-04-04\n         17:00    218.69 MiB |   18.13 MiB |  236.82 MiB |  551.83 kbit/s\n         18:00      1.65 GiB |   72.64 MiB |    1.72 GiB |    4.11 Mbit/s\n         19:00    756.85 MiB |   42.89 MiB |  799.74 MiB |    1.86 Mbit/s\n         20:00    140.48 MiB |   12.13 MiB |  152.61 MiB |  355.61 kbit/s\n         21:00      8.02 MiB |    3.54 MiB |   11.56 MiB |   26.93 kbit/s\n         22:00      7.24 MiB |    3.89 MiB |   11.13 MiB |   25.93 kbit/s\n         23:00      6.15 MiB |    3.66 MiB |    9.81 MiB |   22.85 kbit/s\n     2026-04-05\n         00:00      4.99 MiB |    3.47 MiB |    8.46 MiB |   19.71 kbit/s\n         01:00      5.71 MiB |    3.51 MiB |    9.22 MiB |   21.49 kbit/s\n         02:00      2.87 MiB |    3.32 MiB |    6.19 MiB |   14.42 kbit/s\n         03:00     11.47 MiB |   22.75 MiB |   34.22 MiB |   79.74 kbit/s\n         04:00    784.37 MiB |   39.35 MiB |  823.72 MiB |    1.92 Mbit/s\n         05:00    626.25 MiB |   32.25 MiB |  658.50 MiB |    1.53 Mbit/s\n         06:00     38.78 MiB |   11.54 MiB |   50.32 MiB |  117.26 kbit/s\n         07:00     16.57 MiB |    4.71 MiB |   21.29 MiB |   49.60 kbit/s\n         08:00     12.33 MiB |    4.39 MiB |   16.71 MiB |   38.95 kbit/s\n         09:00     12.20 MiB |    4.78 MiB |   16.98 MiB |   39.56 kbit/s\n         10:00    104.22 MiB |    6.25 MiB |  110.47 MiB |  257.41 kbit/s\n         16:00     14.04 MiB |   10.51 MiB |   24.55 MiB |   57.20 kbit/s\n         17:00     47.55 MiB |   10.81 MiB |   58.36 MiB |  135.99 kbit/s\n         18:00     93.25 MiB |   13.96 MiB |  107.21 MiB |  249.82 kbit/s\n         19:00    133.44 MiB |   19.54 MiB |  152.98 MiB |  356.47 kbit/s\n         20:00     53.40 MiB |    6.77 MiB |   60.17 MiB |  140.21 kbit/s\n         21:00      3.52 MiB |    1.28 MiB |    4.80 MiB |   11.19 kbit/s\n     ------------------------+-------------+-------------+---------------
\n
\n
\n
\n

vnStat \u3078\u306e\u767b\u9332\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4e00\u65e6\u524a\u9664\u3057\u3066\u767b\u9332\u3057\u76f4\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo vnstat --remove -i enx349971e11a0f --force (1)\n$ sudo vnstat --add -i enx349971e11a0f (2)\n$ vnstat -5\nNo 5 minute data available.
\n
\n
\n
\n
    \n
  1. \n

    vnStat \u304b\u3089 enx349971e11a0f \u3092\u524a\u9664

    \n
  2. \n
  3. \n

    enx349971e11a0f \u3092\u8ffd\u52a0\u3057\u76f4\u3057

    \n
  4. \n
\n
\n
\n

\u6570\u6642\u9593\u5f8c\u78ba\u8a8d\u3057\u3066\u3082\u30c7\u30fc\u30bf\u304c\u898b\u3048\u307e\u305b\u3093\u2026\u2026\uff0e

\n
\n
\n
\n
$ vnstat -5\nNo 5 minute data available.
\n
\n
\n
\n

\u3088\u304f\u898b\u308b\u3068vnStat \u306e\u7d50\u679c\u306e1\u884c\u76ee\u306b\u5909\u306a\u65e5\u4ed8\u304c\u3042\u308a\u307e\u3059\uff0e

\n
\n
\n
\n
$ vnstat -i enx349971e11a0f\nDatabase updated: 2026-05-05 08:08:00\n\n   enx349971e11a0f since 2026-04-21\n\n          rx:  0 B      tx:  0 B      total:  0 B\n\n   monthly\n                     rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n                                no data available\n     ------------------------+-------------+-------------+---------------\n     estimated       --      |     --      |     --      |\n\n   daily\n                     rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n                                no data available\n     ------------------------+-------------+-------------+---------------\n     estimated       --      |     --      |     --      |
\n
\n
\n
\n

db \u304c\u672a\u6765\u306e\u65e5\u4ed8\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
\n

Database updated: 2026-05-05 08:08:00

\n
\n
\n
\n
\n

\u3053\u306e\u7aef\u672b\u306fRTC \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30d0\u30c3\u30c6\u30ea\u304c\u6b7b\u3093\u3067\u3044\u308b\u3088\u3046\u3067\u30d0\u30c3\u30c6\u30ea\u5207\u308c\u3067\u843d\u3061\u308b\u3068\u6642\u8a08\u304c\u98db\u3093\u3067\u3057\u307e\u3044\u307e\u3059\uff0e\u305d\u306e\u6b21\u306e\u8d77\u52d5\u6642\u306bUEFI \u3067\u6642\u8a08\u3092\u5408\u308f\u305b\u3066\u8d77\u52d5\u3057\u3066\uff0c\u30b7\u30b9\u30c6\u30e0\u8d77\u52d5\u5f8c\u306bntp \u3067\u6642\u8a08\u5408\u308f\u305b\u3057\u3066\u3082\u3089\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u6050\u3089\u304f\u305d\u306e\u3068\u304d\u306b5/5\u306b\u3057\u3066\u3057\u307e\u3044vnStat \u306edb \u304c\u304a\u304b\u3057\u304f\u306a\u3063\u305f\u306e\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e

\n
\n
\n

\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u304a\u304b\u3057\u305d\u3046\u306a\u306e\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f5c\u308a\u76f4\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo service vnstat stop (1)\n$ sudo -u vnstat mv /var/lib/vnstat/vnstat.db /var/lib/vnstat/vnstat.db.bak (2)\n$ sudo service vnstat start (3)\n$ vnstat -i enx349971e11a0f (4)\n enx349971e11a0f: No data. Timestamp of last update is same 2026-04-22 05:37:54 as of database creation.
\n
\n
\n
\n
    \n
  1. \n

    vnStat \u3092\u4e00\u65e6\u505c\u6b62

    \n
  2. \n
  3. \n

    \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u9000\u907f

    \n
  4. \n
  5. \n

    vnStat \u3092\u8d77\u52d5

    \n
  6. \n
\n
\n
\n

\u3057\u3070\u3089\u304f\u5f8c\u306b\u78ba\u8a8d\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u3061\u3083\u3093\u3068\u52d5\u304d\u59cb\u3081\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ vnstat -i enx349971e11a0f -h\n\n enx349971e11a0f  /  hourly\n\n         hour        rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n     2026-04-22\n         05:00     66.23 MiB |    9.14 MiB |   75.37 MiB |  175.62 kbit/s\n         06:00     13.89 MiB |    4.69 MiB |   18.58 MiB |   86.61 kbit/s\n     ------------------------+-------------+-------------+---------------\n$ vnstat -i enx349971e11a0f -5\n\n enx349971e11a0f  /  5 minute\n\n         time        rx      |     tx      |    total    |   avg. rate\n     ------------------------+-------------+-------------+---------------\n     2026-04-22\n         05:35    201.93 KiB |  113.63 KiB |  315.56 KiB |    8.62 kbit/s\n         05:40     10.26 MiB |    1.57 MiB |   11.84 MiB |  330.99 kbit/s\n         05:45      7.15 MiB |    2.31 MiB |    9.46 MiB |  264.57 kbit/s\n         05:50     38.63 MiB |    4.22 MiB |   42.85 MiB |    1.20 Mbit/s\n         05:55      9.99 MiB |  949.36 KiB |   10.91 MiB |  305.14 kbit/s\n         06:00      8.72 MiB |    1.32 MiB |   10.04 MiB |  280.77 kbit/s\n         06:05      1.35 MiB |  858.75 KiB |    2.19 MiB |   61.13 kbit/s\n         06:10    725.47 KiB |  429.95 KiB |    1.13 MiB |   31.55 kbit/s\n         06:15    637.71 KiB |  431.47 KiB |    1.04 MiB |   29.20 kbit/s\n         06:20      0.98 MiB |  989.68 KiB |    1.95 MiB |   54.39 kbit/s\n         06:25      1.52 MiB |  736.79 KiB |    2.24 MiB |   62.61 kbit/s\n     ------------------------+-------------+-------------+---------------
\n
\n
\n
\n

\u904e\u53bb\u306e\u30c7\u30fc\u30bf\u306f\u5931\u308f\u308c\u307e\u3057\u305f\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u307e\u305f\u8a08\u6e2c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n

\u307e\u305f\u304a\u304b\u3057\u304f\u306a\u308b\u524d\u306b\u96fb\u6c60\u3092\u4ea4\u63db\u3057\u305f\u307b\u3046\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e

\n
\n\n
\n

\u3053\u306e\u3088\u3046\u306acron \u3092\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\uff0e1\u65e51\u56devnStat \u306edb \u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u3066\u53e4\u3044\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u6d88\u305d\u3046\u3068\u3057\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo -u vnstat crontab -l | grep vnstat\n@daily  cp --backup=numbered /var/lib/vnstat/vnstat.db /var/lib/vnstat/vnstat.db.bak && find /var/lib/vnstat/ -name \"vnstat.db.bak*\" -ctime 14 -exec rm {} \\;
\n
\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W vnstat* cron\ncron    3.0pl1-208\nvnstat  2.13-1\nvnstati 2.13-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u3057\u3070\u3089\u304f\u524d\u304b\u3089vnStat \u3068\u3044\u3046\u30c4\u30fc\u30eb\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u8a08\u6e2c\u3057\u3066\u3082\u3089\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n\nvergoh/vnstat: vnStat – a network traffic monitor for Linux and BSD\n\n\n\nvnStat\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u96c6\u8a08\u3059\u308b \u2013 matoken’s blog\n\n\n\n\n\n\n\n\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u901a\u4fe1\u6599\u3092\u78ba\u8a8d\u3057\u305f\u308a\u3068\u3044\u3063\u305f\u3053\u3068\u306b\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e\n\u3057\u304b\u3057\u5148\u65e5\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u5f8c\u306b\u901a\u4fe1\u6599\u3092\u78ba\u8a8d\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u3046\u307e\u304f\u884c\u304d\u307e\u305b\u3093\uff0e\n\n\n\n\u30ec\u30f3\u30b8\u3092\u9593\u9055\u3048\u305f\u304b\u306a\u3068\u601d\u3044\u307e\u3057\u305f\u304c\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u4ee5\u5916\u540c\u3058\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u4ed6\u306e\u7aef\u672b\u3067\u5b9f\u884c\u3059\u308b\u3068\u51fa\u3066\u6765\u308b\u306e\u3067\u30ec\u30f3\u30b8\u306f\u6b63\u3057\u305d\u3046\uff0e\n\n\n\n$ vnstat -i enx349971e11a0f -b '2026-04-19 14:00' -e '2026-04-20 00:40' -h\nNo hourly data available for given date range.\n\n\n\n-l \u3067\u30e9\u30a4\u30d6\u30e2\u30fc\u30c9\u3060\u3068\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\u304c\uff0c -h \u3084 -5 \u3092\u53e9\u304f\u3068\u52d5\u304f\u3051\u3069\u53e4\u3044\u30c7\u30fc\u30bf\u3057\u304b\u51fa\u3066\u304d\u307e\u305b\u3093\uff0e\n\n\n\n$ vnstat -i enx349971e11a0f -h\n\n enx349971e11a0f / hourly\n\n hour rx | tx | total | avg. rate\n ------------------------+-------------+-------------+---------------\n 2026-04-04\n 17:00 218.69 MiB | 18.13 MiB | 236.82 MiB | 551.83 kbit/s\n 18:00 1.65 GiB | 72.64 MiB | 1.72 GiB | 4.11 Mbit/s\n 19:00 756.85 MiB | 42.89 MiB | 799.74 MiB | 1.86 Mbit/s\n 20:00 140.48 MiB | 12.13 MiB | 152.61 MiB | 355.61 kbit/s\n 21:00 8.02 MiB | 3.54 MiB | 11.56 MiB | 26.93 kbit/s\n 22:00 7.24 MiB | 3.89 MiB | 11.13 MiB | 25.93 kbit/s\n 23:00 6.15 MiB | 3.66 MiB | 9.81 MiB | 22.85 kbit/s\n 2026-04-05\n 00:00 4.99 MiB | 3.47 MiB | 8.46 MiB | 19.71 kbit/s\n 01:00 5.71 MiB | 3.51 MiB | 9.22 MiB | 21.49 kbit/s\n 02:00 2.87 MiB | 3.32 MiB | 6.19 MiB | 14.42 kbit/s\n 03:00 11.47 MiB | 22.75 MiB | 34.22 MiB | 79.74 kbit/s\n 04:00 784.37 MiB | 39.35 MiB | 823.72 MiB | 1.92 Mbit/s\n 05:00 626.25 MiB | 32.25 MiB | 658.50 MiB | 1.53 Mbit/s\n 06:00 38.78 MiB | 11.54 MiB | 50.32 MiB | 117.26 kbit/s\n 07:00 16.57 MiB | 4.71 MiB | 21.29 MiB | 49.60 kbit/s\n 08:00 12.33 MiB | 4.39 MiB | 16.71 MiB | 38.95 kbit/s\n 09:00 12.20 MiB | 4.78 MiB | 16.98 MiB | 39.56 kbit/s\n 10:00 104.22 MiB | 6.25 MiB | 110.47 MiB | 257.41 kbit/s\n 16:00 14.04 MiB | 10.51 MiB | 24.55 MiB | 57.20 kbit/s\n 17:00 47.55 MiB | 10.81 MiB | 58.36 MiB | 135.99 kbit/s\n 18:00 93.25 MiB | 13.96 MiB | 107.21 MiB | 249.82 kbit/s\n 19:00 133.44 MiB | 19.54 MiB | 152.98 MiB | 356.47 kbit/s\n 20:00 53.40 MiB | 6.77 MiB | 60.17 MiB | 140.21 kbit/s\n 21:00 3.52 MiB | 1.28 MiB | 4.80 MiB | 11.19 kbit/s\n ------------------------+-------------+-------------+---------------\n\n\n\nvnStat \u3078\u306e\u767b\u9332\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4e00\u65e6\u524a\u9664\u3057\u3066\u767b\u9332\u3057\u76f4\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ sudo vnstat --remove -i enx349971e11a0f --force (1)\n$ sudo vnstat --add -i enx349971e11a0f (2)\n$ vnstat -5\nNo 5 minute data available.\n\n\n\n\n\nvnStat \u304b\u3089 enx349971e11a0f \u3092\u524a\u9664\n\n\nenx349971e11a0f \u3092\u8ffd\u52a0\u3057\u76f4\u3057\n\n\n\n\n\u6570\u6642\u9593\u5f8c\u78ba\u8a8d\u3057\u3066\u3082\u30c7\u30fc\u30bf\u304c\u898b\u3048\u307e\u305b\u3093\u2026\u2026\uff0e\n\n\n\n$ vnstat -5\nNo 5 minute data available.\n\n\n\n\u3088\u304f\u898b\u308b\u3068vnStat \u306e\u7d50\u679c\u306e1\u884c\u76ee\u306b\u5909\u306a\u65e5\u4ed8\u304c\u3042\u308a\u307e\u3059\uff0e\n\n\n\n$ vnstat -i enx349971e11a0f\nDatabase updated: 2026-05-05 08:08:00\n\n enx349971e11a0f since 2026-04-21\n\n rx: 0 B tx: 0 B total: 0 B\n\n monthly\n rx | tx | total | avg. rate\n ------------------------+-------------+-------------+---------------\n no data available\n ------------------------+-------------+-------------+---------------\n estimated -- | -- | -- |\n\n daily\n rx | tx | total | avg. rate\n ------------------------+-------------+-------------+---------------\n no data available\n ------------------------+-------------+-------------+---------------\n estimated -- | -- | -- |\n\n\n\ndb \u304c\u672a\u6765\u306e\u65e5\u4ed8\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\nDatabase updated: 2026-05-05 08:08:00\n\n\n\n\n\u3053\u306e\u7aef\u672b\u306fRTC \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30d0\u30c3\u30c6\u30ea\u304c\u6b7b\u3093\u3067\u3044\u308b\u3088\u3046\u3067\u30d0\u30c3\u30c6\u30ea\u5207\u308c\u3067\u843d\u3061\u308b\u3068\u6642\u8a08\u304c\u98db\u3093\u3067\u3057\u307e\u3044\u307e\u3059\uff0e\u305d\u306e\u6b21\u306e\u8d77\u52d5\u6642\u306bUEFI \u3067\u6642\u8a08\u3092\u5408\u308f\u305b\u3066\u8d77\u52d5\u3057\u3066\uff0c\u30b7\u30b9\u30c6\u30e0\u8d77\u52d5\u5f8c\u306bntp \u3067\u6642\u8a08\u5408\u308f\u305b\u3057\u3066\u3082\u3089\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u6050\u3089\u304f\u305d\u306e\u3068\u304d\u306b5/5\u306b\u3057\u3066\u3057\u307e\u3044vnStat \u306edb \u304c\u304a\u304b\u3057\u304f\u306a\u3063\u305f\u306e\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\n\n\n\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u304a\u304b\u3057\u305d\u3046\u306a\u306e\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f5c\u308a\u76f4\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ sudo service vnstat stop (1)\n$ sudo -u vnstat mv /var/lib/vnstat/vnstat.db /var/lib/vnstat/vnstat.db.bak (2)\n$ sudo service vnstat start (3)\n$ vnstat -i enx349971e11a0f (4)\n enx349971e11a0f: No data. Timestamp of last update is same 2026-04-22 05:37:54 as of database creation.\n\n\n\n\n\nvnStat \u3092\u4e00\u65e6\u505c\u6b62\n\n\n\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u9000\u907f\n\n\nvnStat \u3092\u8d77\u52d5\n\n\n\n\n\u3057\u3070\u3089\u304f\u5f8c\u306b\u78ba\u8a8d\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u3061\u3083\u3093\u3068\u52d5\u304d\u59cb\u3081\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\n$ vnstat -i enx349971e11a0f -h\n\n enx349971e11a0f / hourly\n\n hour rx | tx | total | avg. rate\n ------------------------+-------------+-------------+---------------\n 2026-04-22\n 05:00 66.23 MiB | 9.14 MiB | 75.37 MiB | 175.62 kbit/s\n 06:00 13.89 MiB | 4.69 MiB | 18.58 MiB | 86.61 kbit/s\n ------------------------+-------------+-------------+---------------\n$ vnstat -i enx349971e11a0f -5\n\n enx349971e11a0f / 5 minute\n\n time rx | tx | total | avg. rate\n ------------------------+-------------+-------------+---------------\n 2026-04-22\n 05:35 201.93 KiB | 113.63 KiB | 315.56 KiB | 8.62 kbit/s\n 05:40 10.26 MiB | 1.57 MiB | 11.84 MiB | 330.99 kbit/s\n 05:45 7.15 MiB | 2.31 MiB | 9.46 MiB | 264.57 kbit/s\n 05:50 38.63 MiB | 4.22 MiB | 42.85 MiB | 1.20 Mbit/s\n 05:55 9.99 MiB | 949.36 KiB | 10.91 MiB | 305.14 kbit/s\n 06:00 8.72 MiB | 1.32 MiB | 10.04 MiB | 280.77 kbit/s\n 06:05 1.35 MiB | 858.75 KiB | 2.19 MiB | 61.13 kbit/s\n 06:10 725.47 KiB | 429.95 KiB | 1.13 MiB | 31.55 kbit/s\n 06:15 637.71 KiB | 431.47 KiB | 1.04 MiB | 29.20 kbit/s\n 06:20 0.98 MiB | 989.68 KiB | 1.95 MiB | 54.39 kbit/s\n 06:25 1.52 MiB | 736.79 KiB | 2.24 MiB | 62.61 kbit/s\n ------------------------+-------------+-------------+---------------\n\n\n\n\u904e\u53bb\u306e\u30c7\u30fc\u30bf\u306f\u5931\u308f\u308c\u307e\u3057\u305f\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u307e\u305f\u8a08\u6e2c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\u307e\u305f\u304a\u304b\u3057\u304f\u306a\u308b\u524d\u306b\u96fb\u6c60\u3092\u4ea4\u63db\u3057\u305f\u307b\u3046\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\n\n\n\n\nAmazon.co.jp: CR2016 CMOS\u96fb\u6c60 \u30ec\u30ce\u30dcThinkpad X1 Carbon 2nd,3th,4th,5th Gen,X280,A285\u306a\u3069\u306b\u5bfe\u5fdc : \u30d1\u30bd\u30b3\u30f3\u30fb\u5468\u8fba\u6a5f\u5668\n\n\n\n\u540c\u30a2\u30d5\u30a7\u30ea\u30a8\u30a4\u30c8\u30ea\u30f3\u30af\n\n\n\n\n\n\n\n\u3053\u306e\u3088\u3046\u306acron \u3092\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\uff0e1\u65e51\u56devnStat \u306edb \u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u3066\u53e4\u3044\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u6d88\u305d\u3046\u3068\u3057\u3066\u3044\u307e\u3059\uff0e\n\n\n\n$ sudo -u vnstat crontab -l | grep vnstat\n@daily cp --backup=numbered /var/lib/vnstat/vnstat.db /var/lib/vnstat/vnstat.db.bak && find /var/lib/vnstat/ -name \"vnstat.db.bak*\" -ctime 14 -exec rm {} \\;\n\n\n\n\u74b0\u5883\n\n$ dpkg-query -W vnstat* cron\ncron 3.0pl1-208\nvnstat 2.13-1\nvnstati 2.13-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-04-22T07:11:23+09:00", "date_modified": "2026-04-22T07:11:25+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "network", "vnStat", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5427", "url": "https://matoken.org/blog/2026/04/09/bonsai/", "title": "1bit LLM\u306eBonsai\u3092Linux amd64\u74b0\u5883\u3067\u8a66\u3059", "content_html": "
\n
\n

\n
\n

\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3092\u898b\u3066Bonsai \u3068\u3044\u30461bit LLM \u306b\u8208\u5473\u3092\u6301\u3061\u307e\u3057\u305f\uff0e\u6301\u3061\u904b\u3073\u30de\u30b7\u30f3\u306f\u3042\u307e\u308a\u4f7f\u3063\u3066\u3044\u306a\u3044\u3051\u3069RAM 8GB \u3042\u308a\u307e\u3059\uff0e\u4e16\u4ee3\u306fIntel Core i\u306e7\u4e16\u4ee3\u76ee\u3068\u5c11\u3057\u53e4\u3044\u3051\u3069\u9045\u304f\u3066\u3082\u305d\u3053\u305d\u3053\u306e\u901f\u5ea6\u3067\u52d5\u304f\u306a\u3089\u3044\u3044\u304b\u3082\u3068\u601d\u3044\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n

\n
\n

\u7aef\u672b\u306e\u4e3b\u306a\u30b9\u30da\u30c3\u30af\u306f\u3056\u3063\u304f\u308a\u3053\u3093\u306a\u611f\u3058\uff0e\u3053\u3046\u3084\u3063\u3066\u898b\u308b\u3068\u53e4\u3059\u304e\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u2026\u2026\uff0e

\n
\n
\n
\n
Panasonic CF-RZ6RFRVS\nIntel(R) Core(TM) i5-7Y57 CPU @ 1.20GHz\nMemory LPDDR3 4GiB x2\nVGA Intel Corporation HD Graphics 615\nDisk M.2 SATA 256 GB(used)\nOS Debian Trixie amd64
\n
\n
\n
\n
\n
\n

Bonsai \u306e\u5c0e\u5165

\n
\n
\n

\u5c0e\u5165\u306f\u4ee5\u4e0b\u306eREADME.md \u306e\u901a\u308a\u306b\uff0c setup.sh \u3067venv \u74b0\u5883\u3092\u4f5c\u3063\u3066\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n\n
\n
\n
$ git clone https://github.com/PrismML-Eng/Bonsai-demo (1)\n$ cd Bonsai-demo\n$ BONSAI_MODEL=8B ./setup.sh (2)
\n
\n
\n
\n
    \n
  1. \n

    \u30ea\u30dd\u30b8\u30c8\u30ea\u3092clone

    \n
  2. \n
  3. \n

    8B \u30e2\u30c7\u30eb\u3067 setup.sh \u3092\u5b9f\u884c\uff0e .venv \u4ee5\u4e0b\u306b\u5c0e\u5165

    \n
  4. \n
\n
\n
\n
\n
\n

Bonsai \u306e\u5b9f\u884c

\n
\n
\n

\u5148\u305a\u306fexample \u3092\u305d\u306e\u307e\u307e\u53e9\u3044\u3066\u307f\u307e\u3059\uff0e\u52d5\u304d\u307e\u305b\u3093\uff0e

\n
\n
\n
\n
$ BONSAI_MODEL=8B ./scripts/run_llama.sh -p \"What is the capital of France?\"\n[OK]   Model:  models/gguf/8B/Bonsai-8B.gguf\n[OK]   Binary: /home/matoken/src/Bonsai-demo/bin/cuda/llama-cli\n[OK]   Using -c 0 (auto-fit to available memory)\n[WARN] Auto-fit not supported, falling back to -c 8192
\n
\n
\n
\n

-c 8192 \u3092\u3064\u3051\u3066\u3082 -c 4096 \u3068\u304b\u3057\u3066\u3082\u99c4\u76ee\u3067\u3059\uff0e

\n
\n
\n

script \u91ce\u4e2d\u3092\u898b\u308b\u3068\uff0c 2>/dev/null \u3068\u306a\u3063\u3066\u3044\u3066STDERR \u304c\u51fa\u306a\u304f\u306a\u3063\u3066\u3044\u305d\u3046\u3067\u3059\uff0e
\n\u3068\u3044\u3046\u3053\u3068\u3067\u547c\u3070\u308c\u3066\u3044\u305d\u3046\u306a llama-cli \u3092\u76f4\u306b\u53e9\u3044\u3066\u307f\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ BONSAI_MODEL=8B bin/cuda/llama-cli\nbin/cuda/llama-cli: error while loading shared libraries: libcudart.so.12: cannot open shared object file: No such file or directory
\n
\n
\n
\n

libcudart.so.12 \u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3068\u8a00\u308f\u308c\u308b\u306e\u3067\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5c0e\u5165\u3057\u3066\u3053\u308c\u3067\u52d5\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ apt-file search -x /libcudart.so.12$\nlibcudart12: /usr/lib/x86_64-linux-gnu/libcudart.so.12\n$ sudo apt install libcudart12 nvidia-cuda-dev
\n
\n
\n
\n
\n
\n

2\u56de\u76ee\u4ee5\u964d\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u5b9f\u884c

\n
\n
\n
\n
$ cd Bonsai-demo\n$ source .venv/bin/activate\n$ BONSAI_MODEL=8B ./scripts/run_llama.sh -p \"What is the capital of France?\"
\n
\n
\n
\n
\n
\n

\u3057\u304b\u3057\u9045\u3059\u304e\u307e\u3059\uff0e8B \u30e2\u30c7\u30eb\u3067\u3053\u3093\u306a\u611f\u3058\u3067\u3061\u3087\u3063\u3068\u8f9b\u3044\uff0e

\n
\n
\n
\n
[ Prompt: 0.0 t/s | Generation: 0.0 t/s ]
\n
\n
\n
\n
\n\"Bonsai\"\n
\n
\n
\n
\n
\n

Bonsai \u30e2\u30c7\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9

\n
\n
\n

\u4ed6\u306e\u30e2\u30c7\u30eb\u3082\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ BONSAI_MODEL=4B ./scripts/download_models.sh\n$ BONSAI_MODEL=1.7B ./scripts/download_models.sh
\n
\n
\n
\n

1.7B \u3067\u3082\u3053\u3093\u306a\u611f\u3058\u3067\u307e\u3060\u9045\u3044\u3067\u3059\uff0e

\n
\n
\n
\n
[ Prompt: 0.1 t/s | Generation: 0.1 t/s ]
\n
\n
\n
\n

\u3082\u3046\u5c11\u3057\u65b0\u3057\u3044\u30de\u30b7\u30f3\u3060\u3068\u3069\u3046\u3060\u308d\u3046\u3068\u4ee5\u4e0b\u306e\u7aef\u672b\u3067\u3082\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3084\u306f\u308a\u9045\u3044\uff0e

\n
\n
\n
\n
CPU Intel Core i7-10510U\nRAM DDR4 8GiB *2
\n
\n
\n
\n
8B
\n
\n
[ Prompt: 0.1 t/s | Generation: 0.1 t/s ]
\n
\n
\n
\n
1.7B
\n
\n
[ Prompt: 0.4 t/s | Generation: 0.2 t/s ]
\n
\n
\n
\n

t/s \u3067\u306f\u901f\u5ea6\u304c\u308f\u304b\u3089\u306a\u3044\u3068\u601d\u3046\u306e\u3067\u4ee5\u4e0b\u306bcast \u3092upload \u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n

\u5927\u307e\u304b\u306b
\n\u301c0:45 \u3067\u30e2\u30c7\u30eb\u8aad\u307f\u8fbc\u307f\uff0e
\n\u301c3:28 \u4f4d\u304b\u3089\u56de\u7b54\u304c\u5e30\u3063\u3066\u6765\u306f\u3058\u3081\uff0c
\n\u301c8:40 \u304f\u3089\u3044\u3067\u56de\u7b54\u5b8c\u4e86\uff0e

\n
\n

\n
\n

\u751f\u6210AI \u3067\u306e\u753b\u50cf\u751f\u6210\u306a\u3089\u307e\u3060\u3057\u3082chat \u3067\u58c1\u6253\u3061\u307f\u305f\u3044\u306a\u4f7f\u3044\u65b9\u306b\u306f\u8f9b\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n

\u3068\u601d\u3063\u305f\u3089\u3053\u3093\u306a\u30cb\u30e5\u30fc\u30b9\u304c\uff0eLlama.cpp \u7528\u306e OpenVINO \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u305f\u305d\u3046\u3067\uff0c\u3053\u308c\u3092\u4f7f\u3046\u3068iGPU \u3067\u3082\u901f\u304f\u306a\u308a\u305d\u3046\u3067\u3059\uff0e

\n
\n\n
\n\n\n\n\n\n
\n
Note
\n
\n
\n

OpenVINO \u306f\u4ee5\u524dStable Diffusion \u3067\u8a66\u3057\u305f\u3053\u3068\u304c\uff0e

\n
\n\n
\n
\n
\n
\n
\n

toot

\n
\n\n
\n
\n", "content_text": "\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3092\u898b\u3066Bonsai \u3068\u3044\u30461bit LLM \u306b\u8208\u5473\u3092\u6301\u3061\u307e\u3057\u305f\uff0e\u6301\u3061\u904b\u3073\u30de\u30b7\u30f3\u306f\u3042\u307e\u308a\u4f7f\u3063\u3066\u3044\u306a\u3044\u3051\u3069RAM 8GB \u3042\u308a\u307e\u3059\uff0e\u4e16\u4ee3\u306fIntel Core i\u306e7\u4e16\u4ee3\u76ee\u3068\u5c11\u3057\u53e4\u3044\u3051\u3069\u9045\u304f\u3066\u3082\u305d\u3053\u305d\u3053\u306e\u901f\u5ea6\u3067\u52d5\u304f\u306a\u3089\u3044\u3044\u304b\u3082\u3068\u601d\u3044\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\u300c\u30e1\u30e2\u30ea\u306f8\u30ae\u30ac\u3067\u5341\u5206\u3067\u3059\u3088\u300d\u6642\u4ee3\u306e\u5230\u6765\u30021\u30d3\u30c3\u30c8LLM\u300cBonsai 8B\u300d\u30928GB\u306eMacBook Neo\u3067\u52d5\u304b\u3057\u3066\u307f\u305f\u3089\u7206\u901f\u3060\u3063\u305f\u30021.1GB\u306b8B\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5165\u308b\u9a5a\u304d\u3092\u308f\u304b\u3063\u3066\u304f\u3060\u3055\u3044\u3088\uff08CloseBox\uff09 | \u30c6\u30af\u30ce\u30a8\u30c3\u30b8 TechnoEdge\n\n\n\n\n\n\u7aef\u672b\u306e\u4e3b\u306a\u30b9\u30da\u30c3\u30af\u306f\u3056\u3063\u304f\u308a\u3053\u3093\u306a\u611f\u3058\uff0e\u3053\u3046\u3084\u3063\u3066\u898b\u308b\u3068\u53e4\u3059\u304e\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u2026\u2026\uff0e\n\n\n\nPanasonic CF-RZ6RFRVS\nIntel(R) Core(TM) i5-7Y57 CPU @ 1.20GHz\nMemory LPDDR3 4GiB x2\nVGA Intel Corporation HD Graphics 615\nDisk M.2 SATA 256 GB(used)\nOS Debian Trixie amd64\n\n\n\n\n\nBonsai \u306e\u5c0e\u5165\n\n\n\u5c0e\u5165\u306f\u4ee5\u4e0b\u306eREADME.md \u306e\u901a\u308a\u306b\uff0c setup.sh \u3067venv \u74b0\u5883\u3092\u4f5c\u3063\u3066\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\n\nPrismML-Eng/Bonsai-demo: Bonsai Demo\n\n\n\n\n\n$ git clone https://github.com/PrismML-Eng/Bonsai-demo (1)\n$ cd Bonsai-demo\n$ BONSAI_MODEL=8B ./setup.sh (2)\n\n\n\n\n\n\u30ea\u30dd\u30b8\u30c8\u30ea\u3092clone\n\n\n8B \u30e2\u30c7\u30eb\u3067 setup.sh \u3092\u5b9f\u884c\uff0e .venv \u4ee5\u4e0b\u306b\u5c0e\u5165\n\n\n\n\n\n\nBonsai \u306e\u5b9f\u884c\n\n\n\u5148\u305a\u306fexample \u3092\u305d\u306e\u307e\u307e\u53e9\u3044\u3066\u307f\u307e\u3059\uff0e\u52d5\u304d\u307e\u305b\u3093\uff0e\n\n\n\n$ BONSAI_MODEL=8B ./scripts/run_llama.sh -p \"What is the capital of France?\"\n[OK] Model: models/gguf/8B/Bonsai-8B.gguf\n[OK] Binary: /home/matoken/src/Bonsai-demo/bin/cuda/llama-cli\n[OK] Using -c 0 (auto-fit to available memory)\n[WARN] Auto-fit not supported, falling back to -c 8192\n\n\n\n-c 8192 \u3092\u3064\u3051\u3066\u3082 -c 4096 \u3068\u304b\u3057\u3066\u3082\u99c4\u76ee\u3067\u3059\uff0e\n\n\nscript \u91ce\u4e2d\u3092\u898b\u308b\u3068\uff0c 2>/dev/null \u3068\u306a\u3063\u3066\u3044\u3066STDERR \u304c\u51fa\u306a\u304f\u306a\u3063\u3066\u3044\u305d\u3046\u3067\u3059\uff0e\n\u3068\u3044\u3046\u3053\u3068\u3067\u547c\u3070\u308c\u3066\u3044\u305d\u3046\u306a llama-cli \u3092\u76f4\u306b\u53e9\u3044\u3066\u307f\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3057\u305f\uff0e\n\n\n\n$ BONSAI_MODEL=8B bin/cuda/llama-cli\nbin/cuda/llama-cli: error while loading shared libraries: libcudart.so.12: cannot open shared object file: No such file or directory\n\n\n\nlibcudart.so.12 \u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3068\u8a00\u308f\u308c\u308b\u306e\u3067\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5c0e\u5165\u3057\u3066\u3053\u308c\u3067\u52d5\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ apt-file search -x /libcudart.so.12$\nlibcudart12: /usr/lib/x86_64-linux-gnu/libcudart.so.12\n$ sudo apt install libcudart12 nvidia-cuda-dev\n\n\n\n\n\n2\u56de\u76ee\u4ee5\u964d\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u5b9f\u884c\n\n\n\n$ cd Bonsai-demo\n$ source .venv/bin/activate\n$ BONSAI_MODEL=8B ./scripts/run_llama.sh -p \"What is the capital of France?\"\n\n\n\n\n\n\u3057\u304b\u3057\u9045\u3059\u304e\u307e\u3059\uff0e8B \u30e2\u30c7\u30eb\u3067\u3053\u3093\u306a\u611f\u3058\u3067\u3061\u3087\u3063\u3068\u8f9b\u3044\uff0e\n\n\n\n[ Prompt: 0.0 t/s | Generation: 0.0 t/s ]\n\n\n\n\n\n\n\n\n\n\nBonsai \u30e2\u30c7\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n\n\n\u4ed6\u306e\u30e2\u30c7\u30eb\u3082\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ BONSAI_MODEL=4B ./scripts/download_models.sh\n$ BONSAI_MODEL=1.7B ./scripts/download_models.sh\n\n\n\n1.7B \u3067\u3082\u3053\u3093\u306a\u611f\u3058\u3067\u307e\u3060\u9045\u3044\u3067\u3059\uff0e\n\n\n\n[ Prompt: 0.1 t/s | Generation: 0.1 t/s ]\n\n\n\n\u3082\u3046\u5c11\u3057\u65b0\u3057\u3044\u30de\u30b7\u30f3\u3060\u3068\u3069\u3046\u3060\u308d\u3046\u3068\u4ee5\u4e0b\u306e\u7aef\u672b\u3067\u3082\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3084\u306f\u308a\u9045\u3044\uff0e\n\n\n\nCPU Intel Core i7-10510U\nRAM DDR4 8GiB *2\n\n\n\n8B\n\n[ Prompt: 0.1 t/s | Generation: 0.1 t/s ]\n\n\n\n1.7B\n\n[ Prompt: 0.4 t/s | Generation: 0.2 t/s ]\n\n\n\nt/s \u3067\u306f\u901f\u5ea6\u304c\u308f\u304b\u3089\u306a\u3044\u3068\u601d\u3046\u306e\u3067\u4ee5\u4e0b\u306bcast \u3092upload \u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\u5927\u307e\u304b\u306b\n\u301c0:45 \u3067\u30e2\u30c7\u30eb\u8aad\u307f\u8fbc\u307f\uff0e\n\u301c3:28 \u4f4d\u304b\u3089\u56de\u7b54\u304c\u5e30\u3063\u3066\u6765\u306f\u3058\u3081\uff0c\n\u301c8:40 \u304f\u3089\u3044\u3067\u56de\u7b54\u5b8c\u4e86\uff0e\n\n\n\n\u751f\u6210AI \u3067\u306e\u753b\u50cf\u751f\u6210\u306a\u3089\u307e\u3060\u3057\u3082chat \u3067\u58c1\u6253\u3061\u307f\u305f\u3044\u306a\u4f7f\u3044\u65b9\u306b\u306f\u8f9b\u305d\u3046\u3067\u3059\uff0e\n\n\n\u3068\u601d\u3063\u305f\u3089\u3053\u3093\u306a\u30cb\u30e5\u30fc\u30b9\u304c\uff0eLlama.cpp \u7528\u306e OpenVINO \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u305f\u305d\u3046\u3067\uff0c\u3053\u308c\u3092\u4f7f\u3046\u3068iGPU \u3067\u3082\u901f\u304f\u306a\u308a\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\nIntel Releases OpenVINO 2026.1 With Backend For Llama.cpp, New Hardware Support – Phoronix\n\n\n\n\n\n\n\nNote\n\n\n\nOpenVINO \u306f\u4ee5\u524dStable Diffusion \u3067\u8a66\u3057\u305f\u3053\u3068\u304c\uff0e\n\n\n\n\nStable Diffusion OpenVINO\u3067Intel CPU\u3067\u3082AI\u306b\u753b\u50cf\u3092\u751f\u6210\u3057\u3066\u3082\u3089\u3046 \u2013 matoken’s blog\n\n\n\n\n\n\n\n\n\n\ntoot\n\n\n\n\nmatoken :fox:: “\u677e\u5c3e\u3055\u3093\u306e\u8a18\u4e8b\u3092\u898b\u3066Core i5-7Y57/RAM 8GB\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-04-09T07:33:24+09:00", "date_modified": "2026-04-09T07:33:25+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "bonsai", "LLM", "Debian", "Linux", "trixie" ] }, { "id": "https://matoken.org/blog/?p=5415", "url": "https://matoken.org/blog/2026/04/03/pcmanfm-qt-action/", "title": "\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30a2\u30d7\u30ea\u306ePCManFM-Qt\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306b\u753b\u50cf\u5909\u63dbScript\u3092\u767b\u9332", "content_html": "
\n
\n
\n
\n\"pcmanfm\n
\n
\n
\n

\u6700\u8fd1\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u3067\u306e\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30a2\u30d7\u30ea\u306bPCManFM-Qt \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e\u4ee5\u524d\u306fNautilus \u3092\u4f7f\u3063\u3066\u3044\u3066\uff0c\u753b\u50cf\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u5909\u63db\u306a\u3069\u306b\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306b\u5909\u63dbscript \u3092\u767b\u9332\u3057\u3066\u5229\u7528\u3057\u3066\u3044\u307e\u3057\u305f\uff0ePCManFM-Qt \u3067\u3082\u540c\u69d8\u306e\u3053\u3068\u304c\u3067\u304d\u306a\u3044\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

Nautilus \u3067\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u5909\u63db\u3057\u305f\u3044\u753b\u50cf\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306e Scripts \u306e\u4e2d\u306b\u753b\u50cf\u5909\u63dbScript \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n
\n
\n\"nautilus\n
\n
\n
\n
\n\"nautilus\n
\n
\n
\n

PCManFM-Qt \u3067\u306f\u3053\u306e\u8a2d\u5b9a\u306f\u52b9\u304b\u306a\u3044\u306e\u3067\uff0cLX-Image-Qt \u3084Imagemagick \u306e convert \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u5909\u63db\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u9762\u5012\uff0e

\n
\n
\n

PCManFM-Qt \u3067\u306f ~/.local/share/file-manager/actions/ \u4ee5\u4e0b\u306b\u30a2\u30af\u30b7\u30e7\u30f3\u5b9a\u7fa9\u306e .desktop \u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u3053\u3068\u3067\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306b\u767b\u9332\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n\n
\n

\u76f4\u306b .desktop \u30d5\u30a1\u30a4\u30eb\u3067\u3082\u3044\u3044\u306e\u3067\u3059\u304c\uff0c\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u5bfe\u5fdc\u306a\u3069\u3082\u3057\u305f\u3044\u306e\u3067Shell Script \u3092\u7528\u610f\u3057\u3066\uff0c\u305d\u308c\u3092 .desktop \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u547c\u3076\u3053\u3068\u306b\u3057\u307e\u3059\uff0e

\n
\n
\n

\u5148\u305a\u306f\u9069\u5f53\u306a\u5834\u6240\u306b\u5909\u63dbScript \u3092\u7528\u610f\u3057\u307e\u3059\uff0e\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092ImageMagick \u306econvert \u30b3\u30de\u30f3\u30c9\u3067webp \u5f62\u5f0f\u306b\u5909\u63db\u3059\u308b\u3082\u306e\u3067\u3059\uff0e

\n
\n
\n
~/bin/pcmanfm-convert2webp.sh
\n
\n
#!/bin/sh\n\nfor file in \"$@\"; do\n  [ -f \"$file\" ] || continue\n  out=\"${file%.*}.webp\"\n  convert \"$file\" \"$out\"\ndone
\n
\n
\n
\n

\u5b9f\u884c\u6a29\u3092\u4ed8\u4e0e\u3057\u3066\u304a\u304d\u307e\u3059\uff0e

\n
\n
\n
\n
$ chmod u+x ~/bin/pcmanfm-convert2webp.sh
\n
\n
\n
\n

\u52d5\u4f5c\u3092\u78ba\u8a8d\u3057\u307e\u3059\uff0e\u5927\u4e08\u592b\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ ~/bin/pcmanfm-convert2webp.sh /home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.png\n$ ls -1 /home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.*\n/home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.png\n/home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.webp
\n
\n
\n
\n

\u6b21\u306b .desktop \u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f ~/.local/share/file-manager/actions/ \u306b\u7f6e\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e
\nMimeTypes \u3067\u753b\u50cf\u306e\u5834\u5408\u306b\u3053\u306e .decktop \u304c\u6709\u52b9\u306b\u306a\u308b\u3088\u3046\u306b\u3057\u307e\u3059\uff0eExec \u306b\u4e0a\u306eScript \u3092\u66f8\u3044\u3066\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\uff0e\u3053\u306e\u3068\u304d\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u306e %F \u3092\u6e21\u3057\u307e\u3059\uff0e

\n
\n
\n
~/.local/share/file-manager/actions/convert2webp.desktop
\n
\n
[Desktop Entry]\nType=Action\nName=image2webp\nName[ja]=\u753b\u50cf\u3092webp\u306b\u5909\u63db\nProfiles=convert;\nIcon=application-default-icon\n\n[X-Action-Profile convert]\nMimeTypes=image/*;\nExec=/home/matoken/bin/pcmanfm-convert2webp.sh %F\nCategories=Graphics;
\n
\n
\n
\n

\u3053\u306e\u72b6\u614b\u3067PCmanFm-Qt \u3092\u7d42\u4e86\u3057\u3066\u65b0\u305f\u306b\u8d77\u52d5\u3057\u3066\u753b\u50cf\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3067 convert2webp \u304c\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u5909\u63db\u3082ok\uff0e\u753b\u50cf\u4ee5\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u51fa\u3066\u304d\u307e\u305b\u3093\uff0e

\n
\n
\n
\n\"pcmanfm\n
\n
\n
\n

\u304b\u306a\u308a\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f :)

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W pcmanfm-qt imagemagick\nimagemagick     8:7.1.2.18+dfsg1-1\npcmanfm-qt      2.3.0-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u6700\u8fd1\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u3067\u306e\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30a2\u30d7\u30ea\u306bPCManFM-Qt \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e\u4ee5\u524d\u306fNautilus \u3092\u4f7f\u3063\u3066\u3044\u3066\uff0c\u753b\u50cf\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u5909\u63db\u306a\u3069\u306b\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306b\u5909\u63dbscript \u3092\u767b\u9332\u3057\u3066\u5229\u7528\u3057\u3066\u3044\u307e\u3057\u305f\uff0ePCManFM-Qt \u3067\u3082\u540c\u69d8\u306e\u3053\u3068\u304c\u3067\u304d\u306a\u3044\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\nNautilus \u3067\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u5909\u63db\u3057\u305f\u3044\u753b\u50cf\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306e Scripts \u306e\u4e2d\u306b\u753b\u50cf\u5909\u63dbScript \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\n\n\n\n\nPCManFM-Qt \u3067\u306f\u3053\u306e\u8a2d\u5b9a\u306f\u52b9\u304b\u306a\u3044\u306e\u3067\uff0cLX-Image-Qt \u3084Imagemagick \u306e convert \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u5909\u63db\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u9762\u5012\uff0e\n\n\nPCManFM-Qt \u3067\u306f ~/.local/share/file-manager/actions/ \u4ee5\u4e0b\u306b\u30a2\u30af\u30b7\u30e7\u30f3\u5b9a\u7fa9\u306e .desktop \u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u3053\u3068\u3067\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u306b\u767b\u9332\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\nCustom Actions – LXQt Wiki\n\n\n\n\n\u76f4\u306b .desktop \u30d5\u30a1\u30a4\u30eb\u3067\u3082\u3044\u3044\u306e\u3067\u3059\u304c\uff0c\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u5bfe\u5fdc\u306a\u3069\u3082\u3057\u305f\u3044\u306e\u3067Shell Script \u3092\u7528\u610f\u3057\u3066\uff0c\u305d\u308c\u3092 .desktop \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u547c\u3076\u3053\u3068\u306b\u3057\u307e\u3059\uff0e\n\n\n\u5148\u305a\u306f\u9069\u5f53\u306a\u5834\u6240\u306b\u5909\u63dbScript \u3092\u7528\u610f\u3057\u307e\u3059\uff0e\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092ImageMagick \u306econvert \u30b3\u30de\u30f3\u30c9\u3067webp \u5f62\u5f0f\u306b\u5909\u63db\u3059\u308b\u3082\u306e\u3067\u3059\uff0e\n\n\n~/bin/pcmanfm-convert2webp.sh\n\n#!/bin/sh\n\nfor file in \"$@\"; do\n [ -f \"$file\" ] || continue\n out=\"${file%.*}.webp\"\n convert \"$file\" \"$out\"\ndone\n\n\n\n\u5b9f\u884c\u6a29\u3092\u4ed8\u4e0e\u3057\u3066\u304a\u304d\u307e\u3059\uff0e\n\n\n\n$ chmod u+x ~/bin/pcmanfm-convert2webp.sh\n\n\n\n\u52d5\u4f5c\u3092\u78ba\u8a8d\u3057\u307e\u3059\uff0e\u5927\u4e08\u592b\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ ~/bin/pcmanfm-convert2webp.sh /home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.png\n$ ls -1 /home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.*\n/home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.png\n/home/matoken/Pictures/screenshots/2026-03-31_18:02:35-1365093-selected.webp\n\n\n\n\u6b21\u306b .desktop \u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f ~/.local/share/file-manager/actions/ \u306b\u7f6e\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\nMimeTypes \u3067\u753b\u50cf\u306e\u5834\u5408\u306b\u3053\u306e .decktop \u304c\u6709\u52b9\u306b\u306a\u308b\u3088\u3046\u306b\u3057\u307e\u3059\uff0eExec \u306b\u4e0a\u306eScript \u3092\u66f8\u3044\u3066\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\uff0e\u3053\u306e\u3068\u304d\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u306e %F \u3092\u6e21\u3057\u307e\u3059\uff0e\n\n\n~/.local/share/file-manager/actions/convert2webp.desktop\n\n[Desktop Entry]\nType=Action\nName=image2webp\nName[ja]=\u753b\u50cf\u3092webp\u306b\u5909\u63db\nProfiles=convert;\nIcon=application-default-icon\n\n[X-Action-Profile convert]\nMimeTypes=image/*;\nExec=/home/matoken/bin/pcmanfm-convert2webp.sh %F\nCategories=Graphics;\n\n\n\n\u3053\u306e\u72b6\u614b\u3067PCmanFm-Qt \u3092\u7d42\u4e86\u3057\u3066\u65b0\u305f\u306b\u8d77\u52d5\u3057\u3066\u753b\u50cf\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3067 convert2webp \u304c\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u5909\u63db\u3082ok\uff0e\u753b\u50cf\u4ee5\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u51fa\u3066\u304d\u307e\u305b\u3093\uff0e\n\n\n\n\n\n\n\n\u304b\u306a\u308a\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f :)\n\n\n\u74b0\u5883\n\n$ dpkg-query -W pcmanfm-qt imagemagick\nimagemagick 8:7.1.2.18+dfsg1-1\npcmanfm-qt 2.3.0-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-04-03T06:22:49+09:00", "date_modified": "2026-04-03T12:36:37+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "PCManFM", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5405", "url": "https://matoken.org/blog/2026/04/01/twitter-broadcast-download/", "title": "Twitter\u3067\u914d\u4fe1\u3055\u308c\u305f\u52d5\u753b\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9", "content_html": "
\n
\n

\n
\n

Twitter\u3067\u914d\u4fe1\u3055\u308c\u305f\u30e9\u30a4\u30d6\u52d5\u753b\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u3068\u3042\u308b\u30a4\u30d9\u30f3\u30c8\u304cTwitter \u3067\u914d\u4fe1\u3055\u308c\u3066\u3044\u305f\u3089\u3057\u304fYouTube \u306b\u3082\u3042\u308b\u306e\u3067\u306f\u3068\u601d\u3063\u305f\u3051\u3069\u898b\u5f53\u305f\u308a\u307e\u305b\u3093\uff0eTwitter \u306b\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u6b8b\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u306a\u3093\u304b\u518d\u751f\u304c\u3059\u3050\u6b62\u307e\u308b\u306e\u3067\u8f9b\u3044\uff0e
\n\u3068\u3044\u3046\u3053\u3068\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u306a\u3044\u304b\u306a\u3068\u691c\u7d22\u3059\u308b\u3068X/Twitter Broadcast Downloader \u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u308c\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n
\n
venv \u74b0\u5883\u306b\u5c0e\u5165\u3057\u3066\u8a66\u3059\uff0e
\n
\n
$ git clone https://github.com/offish/twitter-x-broadcast-downloader (1)\n$ cd twitter-x-broadcast-downloader\n$ python3 -m venv venv (2)\n$ source venv/bin/activate (3)\n$ pip install -r \"requirements.txt\" (4)\n$ python main.py (5)\nWhat is the broadcast URL? https://x.com/i/broadcasts/1qGvvkWeqdBGB (6)\nGot media key 28_2038539604165640192\nGot playback URL https://prod-fastly-ap-northeast-1.video.pscp.tv/Transcoding/v1/hls/PTdVIXd-pzzuOcGNlng6TG9haAxe5-rcN7QaIridcZbNbingfwGFrSiqe9DsliGqOpoLNO8lZ2Pk9a_owkY3aw/non_transcode/ap-northeast-1/periscope-replay-direct-prod-ap-northeast-1-public/master_dynamic_16671870457049479117.m3u8?type=replay\nDownloading the broadcast as 28_2038539604165640192.mp4...\n[generic] Extracting URL: https://prod-fastly-ap-northeast-1.video.pscp.tv/Transcoding/v1/hls/PTdVIXd-pzzuOcGNlng6TG9haAxe5...117.m3u8?type=replay\n[generic] master_dynamic_16671870457049479117: Downloading webpage\n[generic] master_dynamic_16671870457049479117: Downloading m3u8 information\n[generic] master_dynamic_16671870457049479117: Checking m3u8 live status\n[info] master_dynamic_16671870457049479117: Downloading 1 format(s): 5500\n[hlsnative] Downloading m3u8 manifest\n[hlsnative] Total fragments: 6385\n[download] Destination: /home/matoken/src/twitter-x-broadcast-downloader/downloads/28_2038539604165640192.mp4\n[download] 100% of    3.64GiB in 00:03:49 at 16.24MiB/s\n[FixupM3u8] Fixing MPEG-TS in MP4 container of \"/home/matoken/src/twitter-x-broadcast-downloader/downloads/28_2038539604165640192.mp4\"\n\n\nWhat is the broadcast URL? (7)
\n
\n
\n
\n
    \n
  1. \n

    source clone

    \n
  2. \n
  3. \n

    venv \u74b0\u5883\u3092\u4f5c\u308b

    \n
  4. \n
  5. \n

    venv \u3092\u6709\u52b9\u306b

    \n
  6. \n
  7. \n

    venv \u74b0\u5883\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb

    \n
  8. \n
  9. \n

    X/Twitter Broadcast Downloader \u3092\u5b9f\u884c

    \n
  10. \n
  11. \n

    \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044URL \u3092\u6e21\u3059

    \n
  12. \n
  13. \n

    \u6b21\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044URL \u5f85\u3061

    \n
  14. \n
\n
\n
\n

\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ ls -lA downloads/\ntotal 3722204\n-rw-rw-r-- 1 matoken matoken 3811532277 Mar 31 18:03 28_2038539604165640192.mp4\n-rw-rw-r-- 1 matoken matoken          0 Mar 31 17:57 .gitkeep\n$ ffprobe downloads/28_2038539604165640192.mp4 2>&1 | grep -A 99 ^Input\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from 'downloads/28_2038539604165640192.mp4':\n  Metadata:\n    major_brand     : isom\n    minor_version   : 512\n    compatible_brands: isomiso2avc1mp41\n    encoder         : Lavf61.7.100\n  Duration: 03:35:23.76, start: 0.000000, bitrate: 2359 kb/s\n  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 2187 kb/s, 30 fps, 30 tbr, 90k tbn (default)\n      Metadata:\n        handler_name    : VideoHandler\n        vendor_id       : [0][0][0][0]\n  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)\n      Metadata:\n        handler_name    : SoundHandler\n        vendor_id       : [0][0][0][0]
\n
\n
\n
\n

\u4ee5\u4e0b\u4f59\u9332\uff0e

\n
\n
\n

\u30ea\u30e2\u30fc\u30c8\u306eVPS \u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u306e\u3067\u3059\u304c\u7d50\u69cb\u5927\u304d\u3044\u306e\u3067\u5c0f\u3055\u304f\u3057\u3066\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e

\n
\n
\n
ffmpeg \u30b3\u30de\u30f3\u30c9\u3067\u52d5\u753b\u3092\u5c0f\u3055\u304f
\n
\n
$ ffmpeg -i downloads/28_2038539604165640192.mp4 -vcodec libx264 -crf 33 -vf \"scale=720:-2\" -c:a copy downloads/28_2038539604165640192-720.mp4\n$ ls -1s downloads/\ntotal 4172176\n 449972 28_2038539604165640192-720.mp4\n3722204 28_2038539604165640192.mp4
\n
\n
\n
\n
\u52d5\u753b\u306e\u97f3\u58f0\u3092\u53d6\u308a\u51fa\u3057\u3066Whisper.cpp \u3067\u5b57\u5e55\u4f5c\u6210
\n
\n
$ ffmpeg -i ~/Downloads/28_2038539604165640192-720.mp4 -ar 44100 -ac 1 -sample_fmt s16 -af silenceremove=1:0:-50dB  clawcon.wav\n$ ./build/bin/whisper-cli -m ./models/ggml-large-v3-turbo.bin --output-srt --language auto -f ./clawcon.wav\n$ ls -1s clawcon.wav*\n1067548 clawcon.wav\n    152 clawcon.wav.srt\n$ head  clawcon.wav.srt\n1\n00:00:00,000 --> 00:00:06,660\nAlright everyone, we'll be starting in 10 minutes. Please make your way to the stage area. We'll be starting in 10 minutes.\n\n2\n00:00:30,000 --> 00:00:59,980\n Thank you.\n\n3\n00:01:00,000 --> 00:01:29,980
\n
\n
\n
\n
\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u74b0\u5883
\n
\n
$ dpkg-query -W python3 python3-venv ffmpeg\nffmpeg  7:7.1.3-0+deb13u1\npython3 3.13.5-1\npython3-venv    3.13.5-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 13 (trixie)\nRelease:        13\n$ arch\nx86_64
\n
\n
\n
\n
\u52d5\u753b\u7de8\u96c6\uff0c\u6587\u5b57\u8d77\u3053\u3057\u74b0\u5883
\n
\n
$ dpkg-query -W ffmpeg\nffmpeg  7:8.1-3+b1\na$ git remote -v\norigin  https://github.com/ggerganov/whisper.cpp.git (fetch)\norigin  https://github.com/ggerganov/whisper.cpp.git (push)\n$ git log --pretty=oneline -1\n95ea8f9bfb03a15db08a8989966fd1ae3361e20d (HEAD -> master, origin/master, origin/HEAD) sync : ggml\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "Twitter\u3067\u914d\u4fe1\u3055\u308c\u305f\u30e9\u30a4\u30d6\u52d5\u753b\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\u3068\u3042\u308b\u30a4\u30d9\u30f3\u30c8\u304cTwitter \u3067\u914d\u4fe1\u3055\u308c\u3066\u3044\u305f\u3089\u3057\u304fYouTube \u306b\u3082\u3042\u308b\u306e\u3067\u306f\u3068\u601d\u3063\u305f\u3051\u3069\u898b\u5f53\u305f\u308a\u307e\u305b\u3093\uff0eTwitter \u306b\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u6b8b\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u306a\u3093\u304b\u518d\u751f\u304c\u3059\u3050\u6b62\u307e\u308b\u306e\u3067\u8f9b\u3044\uff0e\n\u3068\u3044\u3046\u3053\u3068\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u306a\u3044\u304b\u306a\u3068\u691c\u7d22\u3059\u308b\u3068X/Twitter Broadcast Downloader \u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u308c\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\noffish/twitter-x-broadcast-downloader: Download X/Twitter broadcasts or lives\n\n\n\n\nvenv \u74b0\u5883\u306b\u5c0e\u5165\u3057\u3066\u8a66\u3059\uff0e\n\n$ git clone https://github.com/offish/twitter-x-broadcast-downloader (1)\n$ cd twitter-x-broadcast-downloader\n$ python3 -m venv venv (2)\n$ source venv/bin/activate (3)\n$ pip install -r \"requirements.txt\" (4)\n$ python main.py (5)\nWhat is the broadcast URL? https://x.com/i/broadcasts/1qGvvkWeqdBGB (6)\nGot media key 28_2038539604165640192\nGot playback URL https://prod-fastly-ap-northeast-1.video.pscp.tv/Transcoding/v1/hls/PTdVIXd-pzzuOcGNlng6TG9haAxe5-rcN7QaIridcZbNbingfwGFrSiqe9DsliGqOpoLNO8lZ2Pk9a_owkY3aw/non_transcode/ap-northeast-1/periscope-replay-direct-prod-ap-northeast-1-public/master_dynamic_16671870457049479117.m3u8?type=replay\nDownloading the broadcast as 28_2038539604165640192.mp4...\n[generic] Extracting URL: https://prod-fastly-ap-northeast-1.video.pscp.tv/Transcoding/v1/hls/PTdVIXd-pzzuOcGNlng6TG9haAxe5...117.m3u8?type=replay\n[generic] master_dynamic_16671870457049479117: Downloading webpage\n[generic] master_dynamic_16671870457049479117: Downloading m3u8 information\n[generic] master_dynamic_16671870457049479117: Checking m3u8 live status\n[info] master_dynamic_16671870457049479117: Downloading 1 format(s): 5500\n[hlsnative] Downloading m3u8 manifest\n[hlsnative] Total fragments: 6385\n[download] Destination: /home/matoken/src/twitter-x-broadcast-downloader/downloads/28_2038539604165640192.mp4\n[download] 100% of 3.64GiB in 00:03:49 at 16.24MiB/s\n[FixupM3u8] Fixing MPEG-TS in MP4 container of \"/home/matoken/src/twitter-x-broadcast-downloader/downloads/28_2038539604165640192.mp4\"\n\n\nWhat is the broadcast URL? (7)\n\n\n\n\n\nsource clone\n\n\nvenv \u74b0\u5883\u3092\u4f5c\u308b\n\n\nvenv \u3092\u6709\u52b9\u306b\n\n\nvenv \u74b0\u5883\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\n\n\nX/Twitter Broadcast Downloader \u3092\u5b9f\u884c\n\n\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044URL \u3092\u6e21\u3059\n\n\n\u6b21\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044URL \u5f85\u3061\n\n\n\n\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3057\u305f\uff0e\n\n\n\n$ ls -lA downloads/\ntotal 3722204\n-rw-rw-r-- 1 matoken matoken 3811532277 Mar 31 18:03 28_2038539604165640192.mp4\n-rw-rw-r-- 1 matoken matoken 0 Mar 31 17:57 .gitkeep\n$ ffprobe downloads/28_2038539604165640192.mp4 2>&1 | grep -A 99 ^Input\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from 'downloads/28_2038539604165640192.mp4':\n Metadata:\n major_brand : isom\n minor_version : 512\n compatible_brands: isomiso2avc1mp41\n encoder : Lavf61.7.100\n Duration: 03:35:23.76, start: 0.000000, bitrate: 2359 kb/s\n Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 2187 kb/s, 30 fps, 30 tbr, 90k tbn (default)\n Metadata:\n handler_name : VideoHandler\n vendor_id : [0][0][0][0]\n Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)\n Metadata:\n handler_name : SoundHandler\n vendor_id : [0][0][0][0]\n\n\n\n\u4ee5\u4e0b\u4f59\u9332\uff0e\n\n\n\u30ea\u30e2\u30fc\u30c8\u306eVPS \u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u306e\u3067\u3059\u304c\u7d50\u69cb\u5927\u304d\u3044\u306e\u3067\u5c0f\u3055\u304f\u3057\u3066\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e\n\n\nffmpeg \u30b3\u30de\u30f3\u30c9\u3067\u52d5\u753b\u3092\u5c0f\u3055\u304f\n\n$ ffmpeg -i downloads/28_2038539604165640192.mp4 -vcodec libx264 -crf 33 -vf \"scale=720:-2\" -c:a copy downloads/28_2038539604165640192-720.mp4\n$ ls -1s downloads/\ntotal 4172176\n 449972 28_2038539604165640192-720.mp4\n3722204 28_2038539604165640192.mp4\n\n\n\n\u52d5\u753b\u306e\u97f3\u58f0\u3092\u53d6\u308a\u51fa\u3057\u3066Whisper.cpp \u3067\u5b57\u5e55\u4f5c\u6210\n\n$ ffmpeg -i ~/Downloads/28_2038539604165640192-720.mp4 -ar 44100 -ac 1 -sample_fmt s16 -af silenceremove=1:0:-50dB clawcon.wav\n$ ./build/bin/whisper-cli -m ./models/ggml-large-v3-turbo.bin --output-srt --language auto -f ./clawcon.wav\n$ ls -1s clawcon.wav*\n1067548 clawcon.wav\n 152 clawcon.wav.srt\n$ head clawcon.wav.srt\n1\n00:00:00,000 --> 00:00:06,660\nAlright everyone, we'll be starting in 10 minutes. Please make your way to the stage area. We'll be starting in 10 minutes.\n\n2\n00:00:30,000 --> 00:00:59,980\n Thank you.\n\n3\n00:01:00,000 --> 00:01:29,980\n\n\n\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u74b0\u5883\n\n$ dpkg-query -W python3 python3-venv ffmpeg\nffmpeg 7:7.1.3-0+deb13u1\npython3 3.13.5-1\npython3-venv 3.13.5-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux 13 (trixie)\nRelease: 13\n$ arch\nx86_64\n\n\n\n\u52d5\u753b\u7de8\u96c6\uff0c\u6587\u5b57\u8d77\u3053\u3057\u74b0\u5883\n\n$ dpkg-query -W ffmpeg\nffmpeg 7:8.1-3+b1\na$ git remote -v\norigin https://github.com/ggerganov/whisper.cpp.git (fetch)\norigin https://github.com/ggerganov/whisper.cpp.git (push)\n$ git log --pretty=oneline -1\n95ea8f9bfb03a15db08a8989966fd1ae3361e20d (HEAD -> master, origin/master, origin/HEAD) sync : ggml\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-04-01T07:10:47+09:00", "date_modified": "2026-04-01T07:10:49+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ffmpeg", "Twitter", "Debian", "Linux", "sid", "trixie" ] }, { "id": "https://matoken.org/blog/?p=5399", "url": "https://matoken.org/blog/2026/03/31/firefox-duck-ai/", "title": "Firefox\u306eAI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092Duck.ai\u306b\u5909\u66f4\u3057\u3066\u307f\u308b", "content_html": "
\n
\n

\n
\n

\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306eFirefox 133 \u304b\u3089\u30b5\u30a4\u30c9\u30d0\u30fc\u306bAI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n\n
\n

\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u306f\u8907\u6570\u304b\u3089\u9078\u629e\u3067\u304d\u307e\u3059\u304c\uff0c\u30d7\u30ea\u30bb\u30c3\u30c8\u306e\u3082\u306e\u4ee5\u5916\u306e\u5225\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u8ffd\u52a0\u3067\u304d\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066duck.ai \u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\nDuck.ai \u306fDuckDuckGo \u7d4c\u7531\u3067\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u3092\u3042\u308b\u7a0b\u5ea6\u4fdd\u3063\u305f\u307e\u307e\u5229\u7528\u3067\u304d\u308b\u306e\u304c\u500b\u4eba\u7684\u306b\u597d\u304d\u3067\u3059\uff0eDuckDuckGo \u3084Duck.ai \u306fTor \u7d4c\u7531\u3067\u3082\u5229\u7528\u3067\u304d\u308b\u306e\u3067\u3044\u3064\u3082\u306f\u305d\u3061\u3089\u304b\u3089\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n

\n
\n

\u4ee5\u4e0b\u306bduck.ai \u306e\u8ffd\u52a0\u306e\u8981\u671b\u304c\u51fa\u3066\u3044\u3066\uff0c\u30b3\u30e1\u30f3\u30c8\u306b\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u306e\u66f8\u304b\u308c\u305f\u30b3\u30e1\u30f3\u30c8\u304c\u3042\u308b\u306e\u3067\u771f\u4f3c\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n\n
\n

\u307e\u305a\uff0c\u8a2d\u5b9a\u304b\u3089\u300cAI \u5236\u5fa1\u300d→\u300c\u30b5\u30a4\u30c9\u30d0\u30fc\u306e AI \u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u300d\u304b\u3089\u300c\u30b5\u30a4\u30c9\u30d0\u30fc\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u300d\u3092\u300c\u5229\u7528\u53ef\u80fd\u300d\u306b\u3057\u3066\u304a\u304d\u307e\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u6b21\u306b\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306b about:config \u3092\u5165\u529b\u3057\u3066\u300c\u9ad8\u5ea6\u306a\u8a2d\u5b9a\u300d\u3092\u958b\u304d\u307e\u3059\uff0e\u8b66\u544a\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u304c\uff0c\u300c\u5371\u967a\u6027\u3092\u627f\u77e5\u306e\u4e0a\u3067\u4f7f\u7528\u3059\u308b\u300d\u3092\u62bc\u3057\u3066\u5f37\u884c\u3057\u307e\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u691c\u7d22\u6b04\u306b browser.ml.chat.provider \u3092\u5165\u529b\uff0c\u925b\u7b46\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306b\uff0c https://duck.ai/ \u3092\u5165\u529b\u3057\u3066Enter \u3092\u62bc\u3057\u3066\u78ba\u5b9a\u3057\u307e\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u8a2d\u5b9a\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u304c https://duck.ai/ \u306b\u5909\u308f\u308a\u307e\u3057\u305f\uff0e\u3068\u308a\u3042\u3048\u305a\u3053\u308c\u3067OK \u3067\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n\n\n\n\n\n
\n
Tip
\n
\n
\n

NoScript \u306a\u3069\u306e\u62e1\u5f35\u6a5f\u80fd\u3067JavaScript \u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u308b\u5834\u5408\uff0cduck.ai \u306eJavaScript \u3092\u8a31\u53ef\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n
\n
\n

\u30b5\u30a4\u30c9\u30d0\u30fc\u306e AI \u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u958b\u304f\u3068\u3053\u3093\u306a\u611f\u3058\uff0c\u3053\u308c\u3092\u771f\u306b\u53d7\u3051\u308b\u306a\u3089DuckDuckGo \u7d4c\u7531\u3067\u5404\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3066\u533f\u540d\u3092\u4fdd\u3063\u3066\u304f\u308c\u308b\u3057\uff0c\u30c7\u30fc\u30bf\u306e\u4fdd\u6301\u3082\u30ed\u30fc\u30ab\u30eb\u306b\uff0c\u305d\u3057\u3066\u30c1\u30e3\u30c3\u30c8\u5185\u5bb9\u306fAI\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u306b\u5229\u7528\u3055\u308c\u306a\u3044\u3068\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u3053\u306e\u8a18\u4e8b\u3092\u66f8\u3044\u3066\u3044\u308b\u6642\u70b9\u3067\u9078\u629e\u3067\u304d\u308b\u30c1\u30e3\u30c3\u30c8\u30e2\u30c7\u30eb\u306f\uff0c\u300cGPT-5 mini\u300d\uff0c\u300cGPT-40 mini\u300d\uff0c\u300cgpt-oss120B\u300d\uff0c\u300cLlama 4 Scout\u300d\uff0c\u300cClaude Haiku 4.5\u300d\uff0c\u300cMistral Small 3\u300d\u306e6\u3064\uff0e\u3053\u3053\u306f\u5076\u306b\u5909\u308f\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u4ee5\u4e0b\u306f\u8a18\u4e8b\u306e\u8981\u7d04\u3092\u884c\u3063\u305f\u3068\u304d\u306e\u4f8b\u3067\u3059\uff0e

\n
\n
\n
\n\"firefox\n
\n
\n
\n

\u3061\u306a\u307f\u306b\u3053\u306e\u8a2d\u5b9a\u306f\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u5909\u66f4\u3057\u305f\u308a\u7121\u52b9\u306b\u3057\u305f\u3089\u6d88\u3048\u3066\u3057\u307e\u3046\u306e\u3067\u518d\u5ea6\u8a2d\u5b9a\u3057\u76f4\u3057\u304c\u5fc5\u8981\u305d\u3046\u3067\u3059\uff0e\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u304b\u3089\u4efb\u610f\u306e\u8907\u6570\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u8ffd\u52a0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u3044\u3044\u3067\u3059\u306d\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W firefox firefox-l10n-ja\nfirefox 149.0-1\nfirefox-l10n-ja 149.0-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306eFirefox 133 \u304b\u3089\u30b5\u30a4\u30c9\u30d0\u30fc\u306bAI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\nAccess AI chatbots in Firefox | Firefox \u30d8\u30eb\u30d7\n\n\n\n\n\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u306f\u8907\u6570\u304b\u3089\u9078\u629e\u3067\u304d\u307e\u3059\u304c\uff0c\u30d7\u30ea\u30bb\u30c3\u30c8\u306e\u3082\u306e\u4ee5\u5916\u306e\u5225\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u8ffd\u52a0\u3067\u304d\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066duck.ai \u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\nDuck.ai \u306fDuckDuckGo \u7d4c\u7531\u3067\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u3092\u3042\u308b\u7a0b\u5ea6\u4fdd\u3063\u305f\u307e\u307e\u5229\u7528\u3067\u304d\u308b\u306e\u304c\u500b\u4eba\u7684\u306b\u597d\u304d\u3067\u3059\uff0eDuckDuckGo \u3084Duck.ai \u306fTor \u7d4c\u7531\u3067\u3082\u5229\u7528\u3067\u304d\u308b\u306e\u3067\u3044\u3064\u3082\u306f\u305d\u3061\u3089\u304b\u3089\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\u4ee5\u4e0b\u306bduck.ai \u306e\u8ffd\u52a0\u306e\u8981\u671b\u304c\u51fa\u3066\u3044\u3066\uff0c\u30b3\u30e1\u30f3\u30c8\u306b\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u306e\u66f8\u304b\u308c\u305f\u30b3\u30e1\u30f3\u30c8\u304c\u3042\u308b\u306e\u3067\u771f\u4f3c\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n\nAdd Duck.ai to Firefox Chatbot Sidebar – Mozilla Connect\n\n\n\n\n\u307e\u305a\uff0c\u8a2d\u5b9a\u304b\u3089\u300cAI \u5236\u5fa1\u300d→\u300c\u30b5\u30a4\u30c9\u30d0\u30fc\u306e AI \u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u300d\u304b\u3089\u300c\u30b5\u30a4\u30c9\u30d0\u30fc\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u300d\u3092\u300c\u5229\u7528\u53ef\u80fd\u300d\u306b\u3057\u3066\u304a\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\u6b21\u306b\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306b about:config \u3092\u5165\u529b\u3057\u3066\u300c\u9ad8\u5ea6\u306a\u8a2d\u5b9a\u300d\u3092\u958b\u304d\u307e\u3059\uff0e\u8b66\u544a\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u304c\uff0c\u300c\u5371\u967a\u6027\u3092\u627f\u77e5\u306e\u4e0a\u3067\u4f7f\u7528\u3059\u308b\u300d\u3092\u62bc\u3057\u3066\u5f37\u884c\u3057\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\u691c\u7d22\u6b04\u306b browser.ml.chat.provider \u3092\u5165\u529b\uff0c\u925b\u7b46\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306b\uff0c https://duck.ai/ \u3092\u5165\u529b\u3057\u3066Enter \u3092\u62bc\u3057\u3066\u78ba\u5b9a\u3057\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\u8a2d\u5b9a\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u304c https://duck.ai/ \u306b\u5909\u308f\u308a\u307e\u3057\u305f\uff0e\u3068\u308a\u3042\u3048\u305a\u3053\u308c\u3067OK \u3067\u3059\uff0e\n\n\n\n\n\n\n\n\n\n\nTip\n\n\n\nNoScript \u306a\u3069\u306e\u62e1\u5f35\u6a5f\u80fd\u3067JavaScript \u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u308b\u5834\u5408\uff0cduck.ai \u306eJavaScript \u3092\u8a31\u53ef\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\n\n\n\n\u30b5\u30a4\u30c9\u30d0\u30fc\u306e AI \u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u958b\u304f\u3068\u3053\u3093\u306a\u611f\u3058\uff0c\u3053\u308c\u3092\u771f\u306b\u53d7\u3051\u308b\u306a\u3089DuckDuckGo \u7d4c\u7531\u3067\u5404\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3066\u533f\u540d\u3092\u4fdd\u3063\u3066\u304f\u308c\u308b\u3057\uff0c\u30c7\u30fc\u30bf\u306e\u4fdd\u6301\u3082\u30ed\u30fc\u30ab\u30eb\u306b\uff0c\u305d\u3057\u3066\u30c1\u30e3\u30c3\u30c8\u5185\u5bb9\u306fAI\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u306b\u5229\u7528\u3055\u308c\u306a\u3044\u3068\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\u3053\u306e\u8a18\u4e8b\u3092\u66f8\u3044\u3066\u3044\u308b\u6642\u70b9\u3067\u9078\u629e\u3067\u304d\u308b\u30c1\u30e3\u30c3\u30c8\u30e2\u30c7\u30eb\u306f\uff0c\u300cGPT-5 mini\u300d\uff0c\u300cGPT-40 mini\u300d\uff0c\u300cgpt-oss120B\u300d\uff0c\u300cLlama 4 Scout\u300d\uff0c\u300cClaude Haiku 4.5\u300d\uff0c\u300cMistral Small 3\u300d\u306e6\u3064\uff0e\u3053\u3053\u306f\u5076\u306b\u5909\u308f\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\n\n\n\u4ee5\u4e0b\u306f\u8a18\u4e8b\u306e\u8981\u7d04\u3092\u884c\u3063\u305f\u3068\u304d\u306e\u4f8b\u3067\u3059\uff0e\n\n\n\n\n\n\n\n\u3061\u306a\u307f\u306b\u3053\u306e\u8a2d\u5b9a\u306f\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u3092\u5909\u66f4\u3057\u305f\u308a\u7121\u52b9\u306b\u3057\u305f\u3089\u6d88\u3048\u3066\u3057\u307e\u3046\u306e\u3067\u518d\u5ea6\u8a2d\u5b9a\u3057\u76f4\u3057\u304c\u5fc5\u8981\u305d\u3046\u3067\u3059\uff0e\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u304b\u3089\u4efb\u610f\u306e\u8907\u6570\u306e\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u8ffd\u52a0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u3044\u3044\u3067\u3059\u306d\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W firefox firefox-l10n-ja\nfirefox 149.0-1\nfirefox-l10n-ja 149.0-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-03-31T06:15:21+09:00", "date_modified": "2026-03-31T06:15:22+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Duck.ai", "DuckDuckGo", "Firefox", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5381", "url": "https://matoken.org/blog/2026/03/29/firefox-149_tabnote/", "title": "Firefox 149\u306e\u30bf\u30d6\u30ce\u30fc\u30c8\u6a5f\u80fd\u3068\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u65b9\u6cd5", "content_html": "
\n
\n

\n
\n

Mozilla\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306eFirefox 149\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\u65b0\u6a5f\u80fd\u306e\u4e00\u3064\u306e\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n

\n

\n
\n
\n

\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b

\n
\n
\n

\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u5229\u7528\u3059\u308b\u306b\u306f\u8a2d\u5b9a\u3067\u6709\u52b9\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0e
\n\u53f3\u4e0a\u306e\u300c\u2261\u300d\u30a2\u30a4\u30b3\u30f3→\u300c\u8a2d\u5b9a\u300d\u3067\u8a2d\u5b9a\u753b\u9762\u3092\u958b\u304d\uff0c\u5de6\u5074\u306e\u300cFirefox Labs\u300d\u3092\u30af\u30ea\u30c3\u30af\uff0c\u300c\u30bf\u30d6\u30ce\u30fc\u30c8\u300d\u306b\u30c1\u30a7\u30c3\u30af\u3067\u6709\u52b9\u306b\u3067\u304d\u307e\u3059\uff0e

\n
\n
\n
\n\"Firefox149\n
\n
\n
\n
\n
\n

\u30bf\u30d6\u30ce\u30fc\u30c8\u306e\u5229\u7528

\n
\n
\n

\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3044\u8a72\u5f53\u30bf\u30d6\u3067\u53f3\u30af\u30ea\u30c3\u30af→\u300c\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u300d\u304b\uff0c\u8a72\u5f53\u30bf\u30d6\u30db\u30d0\u30fc→\u300c\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u300d\u3067\u30bf\u30d6\u30ce\u30fc\u30c8\u304c\u66f8\u3051\u307e\u3059\uff0e
\n\u7de8\u96c6\uff0c\u524a\u9664\u306f\u53f3\u30af\u30ea\u30c3\u30af\u304b\u3089\u300c\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u300d→\u300c\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u300d or \u300c\u30ce\u30fc\u30c8\u3092\u524a\u9664\u300d\u3067\u884c\u3048\u307e\u3059\uff0e
\n\u30bf\u30d6\u3092\u9589\u3058\u305f\u5f8c\u307e\u305f\u958b\u304f\u3068\u3061\u3083\u3093\u3068\u30e1\u30e2\u306f\u6b8b\u3063\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n
\n
\n\"Firefox149\n
\n
\n
\n
\n\"Firefox149\n
\n
\n
\n
\n\"Firefox149\n
\n
\n
\n
\n
\n

\u30bf\u30d6\u30ce\u30fc\u30c8\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8

\n
\n
\n

\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u66f8\u304d\u51fa\u3057\u3066\u307f\u307e\u3059\uff0e
\n\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u898b\u308b\u3068\uff0c\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306e tabnotes.sqlite \u304c\u305d\u308c\u3063\u307d\u3044\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066csv \u3067\u66f8\u304d\u51fa\u3057\u304c\u3067\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n
Firefox \u304c\u5b9f\u884c\u4e2d\u3060\u3068\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u9069\u5f53\u306a\u5834\u6240\u306b\u30b3\u30d4\u30fc
\n
\n
$ cp ~/.mozilla/firefox/4q5mj0jg.default-release-2/tabnotes.sqlite /tmp/
\n
\n
\n
\n
id, URL, \u80fd\u767b\u3068\u30c6\u30ad\u30b9\u30c8\uff0c\u4f5c\u6210\u65e5\u3092csv \u3067\u66f8\u304d\u51fa\u3057
\n
\n
$ sqlite3 -readonly -header -csv /tmp/tabnotes.sqlite \"SELECT id, canonical_url, note_text, datetime(created,'unixepoch','localtime') AS created FROM tabnotes ORDER BY created DESC;\"\nid,canonical_url,note_text,created\n4,https://snac.matoken.org/matoken/admin,\"\u500b\u4eba\u7528snac\",\"2026-03-29 05:58:56\"\n3,https://codeberg.org/grunfink/snac2,\"\u8efd\u91cfActivityPub server `snac' \u306e\u30ea\u30dd\u30b8\u30c8\u30ea\",\"2026-03-27 19:52:19\"\n2,https://www.sony.jp/tablet/products/P1/specification.html,\"2\u753b\u9762\u30b3\u30f3\u30d1\u30af\u30c8Android \u30bf\u30d6\u30ec\u30c3\u30c8\",\"2026-03-27 19:48:17\"\n1,https://ja.wikipedia.org/wiki/%E6%96%B9%E9%89%9B%E9%89%B1,\"\u65b9\u925b\u9271\",\"2026-03-27 19:37:41\"
\n
\n
\n
\n\n\n\n\n\n
\n
Tip
\n
\n
\n

Firefox \u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u306f\u3053\u3061\u3089\u3092\u53c2\u8003\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e

\n
\n\n
\n
\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
\n
$ dpkg-query -W firefox firefox-l10n-ja\nfirefox 149.0-1\nfirefox-l10n-ja 149.0-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n
\n

toot

\n
\n\n
\n
\n", "content_text": "Mozilla\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306eFirefox 149\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\u65b0\u6a5f\u80fd\u306e\u4e00\u3064\u306e\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\nFirefox 149.0, See All New Features, Updates and Fixes\n\n\n\n\n\n\n\n\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\n\n\n\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u5229\u7528\u3059\u308b\u306b\u306f\u8a2d\u5b9a\u3067\u6709\u52b9\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0e\n\u53f3\u4e0a\u306e\u300c\u2261\u300d\u30a2\u30a4\u30b3\u30f3→\u300c\u8a2d\u5b9a\u300d\u3067\u8a2d\u5b9a\u753b\u9762\u3092\u958b\u304d\uff0c\u5de6\u5074\u306e\u300cFirefox Labs\u300d\u3092\u30af\u30ea\u30c3\u30af\uff0c\u300c\u30bf\u30d6\u30ce\u30fc\u30c8\u300d\u306b\u30c1\u30a7\u30c3\u30af\u3067\u6709\u52b9\u306b\u3067\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\n\n\u30bf\u30d6\u30ce\u30fc\u30c8\u306e\u5229\u7528\n\n\n\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3044\u8a72\u5f53\u30bf\u30d6\u3067\u53f3\u30af\u30ea\u30c3\u30af→\u300c\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u300d\u304b\uff0c\u8a72\u5f53\u30bf\u30d6\u30db\u30d0\u30fc→\u300c\u30ce\u30fc\u30c8\u3092\u8ffd\u52a0\u300d\u3067\u30bf\u30d6\u30ce\u30fc\u30c8\u304c\u66f8\u3051\u307e\u3059\uff0e\n\u7de8\u96c6\uff0c\u524a\u9664\u306f\u53f3\u30af\u30ea\u30c3\u30af\u304b\u3089\u300c\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u300d→\u300c\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u300d or \u300c\u30ce\u30fc\u30c8\u3092\u524a\u9664\u300d\u3067\u884c\u3048\u307e\u3059\uff0e\n\u30bf\u30d6\u3092\u9589\u3058\u305f\u5f8c\u307e\u305f\u958b\u304f\u3068\u3061\u3083\u3093\u3068\u30e1\u30e2\u306f\u6b8b\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u30bf\u30d6\u30ce\u30fc\u30c8\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\n\n\n\u30bf\u30d6\u30ce\u30fc\u30c8\u3092\u66f8\u304d\u51fa\u3057\u3066\u307f\u307e\u3059\uff0e\n\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u898b\u308b\u3068\uff0c\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306e tabnotes.sqlite \u304c\u305d\u308c\u3063\u307d\u3044\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066csv \u3067\u66f8\u304d\u51fa\u3057\u304c\u3067\u304d\u307e\u3057\u305f\uff0e\n\n\nFirefox \u304c\u5b9f\u884c\u4e2d\u3060\u3068\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u9069\u5f53\u306a\u5834\u6240\u306b\u30b3\u30d4\u30fc\n\n$ cp ~/.mozilla/firefox/4q5mj0jg.default-release-2/tabnotes.sqlite /tmp/\n\n\n\nid, URL, \u80fd\u767b\u3068\u30c6\u30ad\u30b9\u30c8\uff0c\u4f5c\u6210\u65e5\u3092csv \u3067\u66f8\u304d\u51fa\u3057\n\n$ sqlite3 -readonly -header -csv /tmp/tabnotes.sqlite \"SELECT id, canonical_url, note_text, datetime(created,'unixepoch','localtime') AS created FROM tabnotes ORDER BY created DESC;\"\nid,canonical_url,note_text,created\n4,https://snac.matoken.org/matoken/admin,\"\u500b\u4eba\u7528snac\",\"2026-03-29 05:58:56\"\n3,https://codeberg.org/grunfink/snac2,\"\u8efd\u91cfActivityPub server `snac' \u306e\u30ea\u30dd\u30b8\u30c8\u30ea\",\"2026-03-27 19:52:19\"\n2,https://www.sony.jp/tablet/products/P1/specification.html,\"2\u753b\u9762\u30b3\u30f3\u30d1\u30af\u30c8Android \u30bf\u30d6\u30ec\u30c3\u30c8\",\"2026-03-27 19:48:17\"\n1,https://ja.wikipedia.org/wiki/%E6%96%B9%E9%89%9B%E9%89%B1,\"\u65b9\u925b\u9271\",\"2026-03-27 19:37:41\"\n\n\n\n\n\n\nTip\n\n\n\nFirefox \u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u306f\u3053\u3061\u3089\u3092\u53c2\u8003\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e\n\n\n\n\nProfiles – Where Firefox stores your bookmarks, passwords and other user data | Firefox Help\n\n\n\n\n\n\n\n\n\n\n\u74b0\u5883\n\n\n\n$ dpkg-query -W firefox firefox-l10n-ja\nfirefox 149.0-1\nfirefox-l10n-ja 149.0-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\n\n\ntoot\n\n\n\n\nmatoken :fox:: “Firefox 149 \u65b0\u6a5f\u80fd\u306e\u4e00\u3064\u306e\u30bf\u30d6\u3078\u306e\u30ce\u30fc\u30c8\u6a5f\u80fd \u8a72\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-03-29T07:01:24+09:00", "date_modified": "2026-03-29T18:20:00+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Firefox", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5367", "url": "https://matoken.org/blog/2026/03/26/snac-2-91/", "title": "\u8efd\u91cfActivityPub Server\u306esnac 2.91\u30ea\u30ea\u30fc\u30b9", "content_html": "
\n
\n
\n

\"susie64

\n
\n
\n

c\u8a00\u8a9e\u3067\u4f5c\u3089\u308c\u3066\u3044\u308b\u8efd\u91cfActivityPub Server \u306esnac 2.91 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n\n

\n

\n
\n
\n

Release Notes

\n
\n
\n
\n
\n

## 2.91

\n
\n
\n

Fixed some local posts not being shown if the replied post is deleted.

\n
\n
\n

Fixed web UI incorrect links to public posts for some configurations.

\n
\n
\n

Fixed encoding bug in Mastodon-style share links.

\n
\n
\n

Fixed an error that made imposible to leave empty the following hashtags or blocked hashtags from the web UI.

\n
\n
\n

Include post attachments in the RSS feed entries.

\n
\n
\n

Added some OpenBSD-specific documentation (contributed by oxzi).

\n
\n
\n

Fixed some timezones (contributed by matoken).

\n
\n
\n

Fixed some crashes (special thanks to Louis Merlin for helping me with this).

\n
\n
\n

Updated Docker scripts to avoid generating a useless log file.

\n
\n
\n

Fixed several memory leaks, key generation errors and HTML inconsistencies (contributed by dandelions).

\n
\n
\n

Added ostatus.org and FEP-3b86 data to Webfinger objects.

\n
\n
\n

Added a new CONTRIBUTING.md file. Among other guidelines, I explicitly say there that AI contributions are NOT accepted.

\n
\n
\n

snac is now available as a [Yunohost app](https://apps.yunohost.org/app/snac). Thank you very much to Bruno Cesar Rocha for this.

\n
\n
\n
\n
\n

\u4eca\u56de\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u306f CONTRIBUTING.md \u30d5\u30a1\u30a4\u30eb\u304c\u8ffd\u52a0\u3055\u308c\u8ca2\u732e\u306b\u3064\u3044\u3066\u660e\u78ba\u5316\u3055\u308c\u307e\u3057\u305f\uff0e\u305d\u3057\u3066\u6240\u8b02\u751f\u6210AI\u3084LLM\u3092\u4f7f\u3063\u305f\u3082\u306e\u306f\u53d7\u3051\u53d6\u308c\u306a\u3044\u3068\u3082\uff0e
\n\u5f8c\u306f\u5927\u4f53\u30d0\u30b0\u4fee\u6b63\u3067\u3057\u3087\u3046\u304b\uff0e\u81ea\u5206\u306e\u9001\u3063\u305f\u5c0f\u3055\u3044\u30d1\u30c3\u30c1\u3084\u5831\u544a\u3057\u305f\u30d0\u30b0\u4fee\u6b63\u3082\u542b\u307e\u308c\u3066\u3044\u305f\u308a\u3057\u307e\u3059\uff0e

\n
\n
\n

\u305d\u306e\u4ed6\uff0cYunohost app \u3068\u3057\u3066\u3082\u767b\u9332\u3055\u308c\uff0cYunohost \u74b0\u5883\u3067\u7c21\u5358\u306b\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n\n
\n
\n
\n

\u81ea\u74b0\u5883\u306esnac\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9

\n
\n
\n

\u500b\u4eba\u7528\u306esnac \u306fsource \u304b\u3089build \u3057\u3066\u30ea\u30ea\u30fc\u30b9\u5f8c\u6570\u6642\u9593\u5f8c\u306b\u306f\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u307e\u3057\u305f\uff0e
\n#kagolug \u306esnac \u306fDebian stable-backports(trixie-backports) \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5229\u7528\u3057\u3066\u3044\u3066\uff0c\u6570\u65e5\u9045\u308c\u306e\u4eca\u65e5\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n

\u81ea\u5206\u306e\u74b0\u5883\u306eamd64 \u3060\u3068\u554f\u984c\u306a\u304b\u3063\u305f\u3067\u3059\u304c\uff0cDebian package \u306f\u4e00\u90e8\u74b0\u5883\u3067\u30b3\u30b1\u3066\u3044\u305d\u3046\uff0e

\n
\n
\n
\n
$ rmadison snac2\nsnac2      | 2.75-2~bpo12+1 | oldstable-backports       | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x\nsnac2      | 2.75-2~bpo12+1 | oldstable-backports-debug | source\nsnac2      | 2.75-2         | stable                    | source, amd64, arm64, armel, armhf, i386, ppc64el, riscv64, s390x\nsnac2      | 2.90-1~bpo13+1 | stable-backports          | source, riscv64\nsnac2      | 2.90-1~bpo13+1 | stable-backports-debug    | source\nsnac2      | 2.90-1         | testing                   | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x\nsnac2      | 2.90-1         | unstable                  | source, riscv64\nsnac2      | 2.90-1         | unstable-debug            | source\nsnac2      | 2.91-1~bpo13+1 | buildd-stable-backports   | source, amd64, arm64, armel, armhf, i386, ppc64el, s390x\nsnac2      | 2.91-1~bpo13+1 | stable-backports          | source, amd64, arm64, armel, armhf, i386, ppc64el, s390x\nsnac2      | 2.91-1~bpo13+1 | stable-backports-debug    | source\nsnac2      | 2.91-1         | buildd-unstable           | source, amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x\nsnac2      | 2.91-1         | unstable                  | source, amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x\nsnac2      | 2.91-1         | unstable-debug            | source
\n
\n
\n
\n
\n
\n
\n
Migration status for snac2 (2.90-1 to 2.91-1): BLOCKED: Maybe temporary, maybe blocked but Britney is missing information (check below)\nIssues preventing migration:\n\u2219 \u2219 Missing build on riscv64\n\u2219 \u2219 Autopkgtest deferred on riscv64: missing arch:riscv64 build\n\u2219 \u2219 Autopkgtest for snac2/2.91-1: amd64: Pass, arm64: Pass, i386: Test triggered, ppc64el: Test triggered, s390x: Test triggered\n\u2219 \u2219 Lintian check waiting for test results - info\n\u2219 \u2219 Too young, only 0 of 5 days old\nAdditional info (not blocking):\n\u2219 \u2219 Piuparts tested OK - https://piuparts.debian.org/sid/source/s/snac2.html\n\u2219 \u2219 Reproducibility check waiting for results on amd64\n\u2219 \u2219 Reproducibility check waiting for results on arm64\n\u2219 \u2219 Reproduced on armhf\n\u2219 \u2219 Reproducibility check waiting for results on i386\n\u2219 \u2219 Reproducibility check waiting for results on ppc64el\nNot considered
\n
\n
\n
\n\n
\n
\n
\n", "content_text": "c\u8a00\u8a9e\u3067\u4f5c\u3089\u308c\u3066\u3044\u308b\u8efd\u91cfActivityPub Server \u306esnac 2.91 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\n\nThe Real Grunfink (@grunfink@comam.es) \u4f5c\u8005\u306etoot\n\n\nRelease Notes\n\n\ngrunfink/snac2: A simple, minimalistic ActivityPub instance written in portable C – Codeberg.org\n\n\n\n\n\n\n\nRelease Notes\n\n\n\n\n## 2.91\n\n\nFixed some local posts not being shown if the replied post is deleted.\n\n\nFixed web UI incorrect links to public posts for some configurations.\n\n\nFixed encoding bug in Mastodon-style share links.\n\n\nFixed an error that made imposible to leave empty the following hashtags or blocked hashtags from the web UI.\n\n\nInclude post attachments in the RSS feed entries.\n\n\nAdded some OpenBSD-specific documentation (contributed by oxzi).\n\n\nFixed some timezones (contributed by matoken).\n\n\nFixed some crashes (special thanks to Louis Merlin for helping me with this).\n\n\nUpdated Docker scripts to avoid generating a useless log file.\n\n\nFixed several memory leaks, key generation errors and HTML inconsistencies (contributed by dandelions).\n\n\nAdded ostatus.org and FEP-3b86 data to Webfinger objects.\n\n\nAdded a new CONTRIBUTING.md file. Among other guidelines, I explicitly say there that AI contributions are NOT accepted.\n\n\nsnac is now available as a [Yunohost app](https://apps.yunohost.org/app/snac). Thank you very much to Bruno Cesar Rocha for this.\n\n\n\n\n\u4eca\u56de\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u306f CONTRIBUTING.md \u30d5\u30a1\u30a4\u30eb\u304c\u8ffd\u52a0\u3055\u308c\u8ca2\u732e\u306b\u3064\u3044\u3066\u660e\u78ba\u5316\u3055\u308c\u307e\u3057\u305f\uff0e\u305d\u3057\u3066\u6240\u8b02\u751f\u6210AI\u3084LLM\u3092\u4f7f\u3063\u305f\u3082\u306e\u306f\u53d7\u3051\u53d6\u308c\u306a\u3044\u3068\u3082\uff0e\n\u5f8c\u306f\u5927\u4f53\u30d0\u30b0\u4fee\u6b63\u3067\u3057\u3087\u3046\u304b\uff0e\u81ea\u5206\u306e\u9001\u3063\u305f\u5c0f\u3055\u3044\u30d1\u30c3\u30c1\u3084\u5831\u544a\u3057\u305f\u30d0\u30b0\u4fee\u6b63\u3082\u542b\u307e\u308c\u3066\u3044\u305f\u308a\u3057\u307e\u3059\uff0e\n\n\n\u305d\u306e\u4ed6\uff0cYunohost app \u3068\u3057\u3066\u3082\u767b\u9332\u3055\u308c\uff0cYunohost \u74b0\u5883\u3067\u7c21\u5358\u306b\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\nYunoHost app store | snac2\n\n\n\n\n\n\n\u81ea\u74b0\u5883\u306esnac\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\n\n\n\u500b\u4eba\u7528\u306esnac \u306fsource \u304b\u3089build \u3057\u3066\u30ea\u30ea\u30fc\u30b9\u5f8c\u6570\u6642\u9593\u5f8c\u306b\u306f\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u307e\u3057\u305f\uff0e\n#kagolug \u306esnac \u306fDebian stable-backports(trixie-backports) \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5229\u7528\u3057\u3066\u3044\u3066\uff0c\u6570\u65e5\u9045\u308c\u306e\u4eca\u65e5\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u307e\u3057\u305f\uff0e\n\n\n\u81ea\u5206\u306e\u74b0\u5883\u306eamd64 \u3060\u3068\u554f\u984c\u306a\u304b\u3063\u305f\u3067\u3059\u304c\uff0cDebian package \u306f\u4e00\u90e8\u74b0\u5883\u3067\u30b3\u30b1\u3066\u3044\u305d\u3046\uff0e\n\n\n\n$ rmadison snac2\nsnac2 | 2.75-2~bpo12+1 | oldstable-backports | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x\nsnac2 | 2.75-2~bpo12+1 | oldstable-backports-debug | source\nsnac2 | 2.75-2 | stable | source, amd64, arm64, armel, armhf, i386, ppc64el, riscv64, s390x\nsnac2 | 2.90-1~bpo13+1 | stable-backports | source, riscv64\nsnac2 | 2.90-1~bpo13+1 | stable-backports-debug | source\nsnac2 | 2.90-1 | testing | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x\nsnac2 | 2.90-1 | unstable | source, riscv64\nsnac2 | 2.90-1 | unstable-debug | source\nsnac2 | 2.91-1~bpo13+1 | buildd-stable-backports | source, amd64, arm64, armel, armhf, i386, ppc64el, s390x\nsnac2 | 2.91-1~bpo13+1 | stable-backports | source, amd64, arm64, armel, armhf, i386, ppc64el, s390x\nsnac2 | 2.91-1~bpo13+1 | stable-backports-debug | source\nsnac2 | 2.91-1 | buildd-unstable | source, amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x\nsnac2 | 2.91-1 | unstable | source, amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x\nsnac2 | 2.91-1 | unstable-debug | source\n\n\n\n\n\n\nMigration status for snac2 (2.90-1 to 2.91-1): BLOCKED: Maybe temporary, maybe blocked but Britney is missing information (check below)\nIssues preventing migration:\n\u2219 \u2219 Missing build on riscv64\n\u2219 \u2219 Autopkgtest deferred on riscv64: missing arch:riscv64 build\n\u2219 \u2219 Autopkgtest for snac2/2.91-1: amd64: Pass, arm64: Pass, i386: Test triggered, ppc64el: Test triggered, s390x: Test triggered\n\u2219 \u2219 Lintian check waiting for test results - info\n\u2219 \u2219 Too young, only 0 of 5 days old\nAdditional info (not blocking):\n\u2219 \u2219 Piuparts tested OK - https://piuparts.debian.org/sid/source/s/snac2.html\n\u2219 \u2219 Reproducibility check waiting for results on amd64\n\u2219 \u2219 Reproducibility check waiting for results on arm64\n\u2219 \u2219 Reproduced on armhf\n\u2219 \u2219 Reproducibility check waiting for results on i386\n\u2219 \u2219 Reproducibility check waiting for results on ppc64el\nNot considered\n\n\n\n\n— snac2 – Debian Package Tracker", "date_published": "2026-03-26T20:39:29+09:00", "date_modified": "2026-03-26T20:39:31+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ActivityPub", "snac", "Debian", "Linux", "trixie", "\u672a\u5206\u985e" ] }, { "id": "https://matoken.org/blog/?p=5332", "url": "https://matoken.org/blog/2026/03/13/firefox-extension-snapwer/", "title": "Web\u4e0a\u306eActivityPub\u6295\u7a3f\u3092snac\u3067\u4f7f\u3044\u3084\u3059\u304f\u3059\u308bFirefox\u62e1\u5f35\u6a5f\u80fd\u306eSnacWer", "content_html": "
\n
\n
\n

\"snac

\n
\n
\n

\u8efd\u91cfActivityPub server \u306esnac\u7528Firefox addon \u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u3053\u306eAddOn\u4f5c\u8005\u306e\u65b9\u306etoot\u3092snac\u306e\u4f5c\u8005\u304cboost\u3057\u3066\u3044\u305f\u306e\u3067\u77e5\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

Hello #snac users. If you enjoy exploring the Fediverse via the web, you might find this #FirefoxExtension I created helpful. It lets you interact with almost any post more easily. It also works, of course, on Firefox derivates.

\n
\n
\n

Feel free to take a look.

\n
\n\n\n
\n\n
\n
\n

Web\u3067snac\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u4fbf\u5229\u306b\u306a\u308b\u62e1\u5f35\u6a5f\u80fd\u306e\u3088\u3046\u3067\u3059\uff0e
\n\u65e9\u901f\u5c0e\u5165\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n

\u4ee5\u4e0b\u304b\u3089Firefox\u306b\u62e1\u5f35\u6a5f\u80fd\u3092\u767b\u9332\u3057\u307e\u3059\uff0e

\n
\n\n
\n

\u62e1\u5f35\u6a5f\u80fd\u306e\u8a2d\u5b9a\u304b\u3089\u81ea\u5206\u306esnac\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u307e\u3059\uff0e\u3053\u308c\u3067\u6e96\u5099\u5b8c\u4e86\u3067\u3059\uff0e

\n
\n
\n

\"snacwer00\"

\n
\n
\n

\u8a66\u3057\u306b\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046\uff0eMastodon\u306a\u3069\u306eActivityPub\u306e\u516c\u958b\u6295\u7a3f\u3092\u958b\u304d\u307e\u3059\uff0e\u3059\u308b\u3068\uff0c\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u53f3\u5074\u306bsnac\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e

\n
\n
\n

\"snacwer01\"

\n
\n
\n

snac\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u8a2d\u5b9a\u3057\u305f\u81ea\u5206\u306esnac\u3067\u305d\u306e\u6295\u7a3f\u304c\u958b\u304b\u308c\u307e\u3059\uff0e\u3053\u3053\u3067Like\u3084Boost\u306a\u3069\u306e\u64cd\u4f5c\u304c\u3067\u304d\u307e\u3059\uff0eURL\u3092\u30b3\u30d4\u30fc\u3057\u3066snac\u306b\u6301\u3063\u3066\u3044\u3063\u305f\u308a\u3059\u308b\u3088\u308a\u4fbf\u5229\u3067\u3059 :)

\n
\n
\n

\"snacwer02\"

\n
\n
\n
\u74b0\u5883
\n
\n
\n

SnacWer \u30d0\u30fc\u30b8\u30e7\u30f3 1.0.1

\n
\n
\n
\n
\n
\n
$ dpkg-query -W firefox\nfirefox 148.0.2-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n\n
\n
\n", "content_text": "\u8efd\u91cfActivityPub server \u306esnac\u7528Firefox addon \u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\u3053\u306eAddOn\u4f5c\u8005\u306e\u65b9\u306etoot\u3092snac\u306e\u4f5c\u8005\u304cboost\u3057\u3066\u3044\u305f\u306e\u3067\u77e5\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\nHello #snac users. If you enjoy exploring the Fediverse via the web, you might find this #FirefoxExtension I created helpful. It lets you interact with almost any post more easily. It also works, of course, on Firefox derivates.\n\n\nFeel free to take a look.\n\n\nhttps://addons.mozilla.org/addon/snacwer/\n\n\nSource code:\nhttps://codeberg.org/fidiben/SnacWer\n\n\n\n— unlogged (@unlogged@snac.unlogged.it)\n\n\n\nWeb\u3067snac\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u4fbf\u5229\u306b\u306a\u308b\u62e1\u5f35\u6a5f\u80fd\u306e\u3088\u3046\u3067\u3059\uff0e\n\u65e9\u901f\u5c0e\u5165\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\u4ee5\u4e0b\u304b\u3089Firefox\u306b\u62e1\u5f35\u6a5f\u80fd\u3092\u767b\u9332\u3057\u307e\u3059\uff0e\n\n\n\n\nSnacWer \u2013 Firefox (ja) \u5411\u3051\u62e1\u5f35\u6a5f\u80fd\u3092\u5165\u624b\n\n\n\n\n\u62e1\u5f35\u6a5f\u80fd\u306e\u8a2d\u5b9a\u304b\u3089\u81ea\u5206\u306esnac\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u307e\u3059\uff0e\u3053\u308c\u3067\u6e96\u5099\u5b8c\u4e86\u3067\u3059\uff0e\n\n\n\n\n\n\u8a66\u3057\u306b\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046\uff0eMastodon\u306a\u3069\u306eActivityPub\u306e\u516c\u958b\u6295\u7a3f\u3092\u958b\u304d\u307e\u3059\uff0e\u3059\u308b\u3068\uff0c\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u53f3\u5074\u306bsnac\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e\n\n\n\n\n\nsnac\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u8a2d\u5b9a\u3057\u305f\u81ea\u5206\u306esnac\u3067\u305d\u306e\u6295\u7a3f\u304c\u958b\u304b\u308c\u307e\u3059\uff0e\u3053\u3053\u3067Like\u3084Boost\u306a\u3069\u306e\u64cd\u4f5c\u304c\u3067\u304d\u307e\u3059\uff0eURL\u3092\u30b3\u30d4\u30fc\u3057\u3066snac\u306b\u6301\u3063\u3066\u3044\u3063\u305f\u308a\u3059\u308b\u3088\u308a\u4fbf\u5229\u3067\u3059 :)\n\n\n\n\n\n\u74b0\u5883\n\n\nSnacWer \u30d0\u30fc\u30b8\u30e7\u30f3 1.0.1\n\n\n\n\n\n$ dpkg-query -W firefox\nfirefox 148.0.2-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\ntoot\n\n\nunlogged (@unlogged@snac.unlogged.it)\n\n\nmatoken:susie: (@matoken@snac.matoken.org)", "date_published": "2026-03-13T06:45:02+09:00", "date_modified": "2026-03-13T06:45:05+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ActivityPub", "Firefox", "snac", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5314", "url": "https://matoken.org/blog/2026/03/07/gnome-setting-reset/", "title": "\u4e45\u3005\u306bGNOME\u74b0\u5883\u3092\u8d77\u52d5\u3057\u305f\u3089\u64cd\u4f5c\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u306e\u3067\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8", "content_html": "
\n
\n

\n
\n

\u3044\u3064\u3082Xfce4 \u3067\u4f7f\u3063\u3066\u3044\u308bDebian statble(trixie) \u74b0\u5883\u3067\u4e45\u3005\u306bGNOME \u74b0\u5883\u3092\u8d77\u52d5\u3057\u305f\u3089\u64cd\u4f5c\u3092\u53d7\u3051\u4ed8\u3051\u307e\u305b\u3093\uff0e
\n\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u5fa9\u65e7\u3057\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

GNOME \u306e\u72b6\u6cc1\u306f\u4e0a\u90e8\u306e\u6642\u8a08\u3084\u62e1\u5f35\u6a5f\u80fd\u306eRunCat \u306a\u3093\u304b\u306f\u52d5\u3044\u3066\u3044\u308b\u3051\u3069\u30ad\u30fc\u306e\u5165\u529b\u3092\u53d7\u3051\u4ed8\u3051\u305a\u64cd\u4f5c\u3067\u304d\u307e\u305b\u3093\uff0e\u30de\u30a6\u30b9\u3082\u30ab\u30fc\u30bd\u30eb\u304c\u5076\u306b\u898b\u3048\u308b\u3051\u3069\u30af\u30ea\u30c3\u30af\u3057\u3066\u3082\u4f55\u3082\u8d77\u304d\u307e\u305b\u3093\uff0e
\n\u3068\u3044\u3046\u611f\u3058\u3067\u4f7f\u3044\u7269\u306b\u306a\u308a\u307e\u305b\u3093\uff0e
\n\u5143\u3005\u307b\u3068\u3093\u3069\u4f7f\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u8a2d\u5b9a\u3092\u521d\u671f\u5316\u3057\u3066\u307f\u308b\u3053\u3068\u306b\uff0e

\n
\n
\n

\u307e\u305a\u306fGNOME \u304b\u3089\u3069\u3046\u306b\u304b\u3057\u3066\u629c\u3051\u307e\u3059\uff0e\u4eca\u56de\u306f\u30ad\u30fc\u5165\u529b\u3092\u53d7\u3051\u4ed8\u3051\u305aCtrl+Alt+F1 \u306a\u3093\u304b\u3067\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u3082\u964d\u308a\u308c\u306a\u3044\u306e\u3067\u56f0\u308a\u307e\u3057\u305f\u304c\uff0csshd \u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u305f\u306e\u3067\u305d\u308c\u3067\u5165\u3063\u3066\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u30de\u30cd\u30fc\u30b8\u30e3(\u4eca\u56de\u306fLightDM) \u3092\u518d\u8d77\u52d5\u3057\u3066\u629c\u3051\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ sudo service lightdm restart
\n
\n
\n
\n\n\n\n\n\n
\n
Tip
\n
\n
\n

\u3082\u3057\u30ea\u30e2\u30fc\u30c8\u64cd\u4f5c\u3082\u3067\u304d\u306a\u3044\u5834\u5408Magic SysRq key \u306f\u53cd\u5fdc\u3057\u305f\u306e\u3067\u3053\u308c\u3067\u518d\u8d77\u52d5\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n\n
\n
\n
\n

GNOME \u304b\u3089\u629c\u3051\u305f\u5f8c\uff0cGNOME \u4ee5\u5916\u306e\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u304b\uff0c\u30b3\u30f3\u30bd\u30fc\u30eb\uff0cssh \u306a\u3069\u3067dconf \u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ dconf dump / > dconf.backup (1)\n$ dconf reset -f /org/gnome (2)
\n
\n
\n
\n
    \n
  1. \n

    \u5ff5\u306e\u70badconf \u3092backup

    \n
  2. \n
  3. \n

    dconf \u306egnome \u4ee5\u4e0b\u3092\u30ea\u30bb\u30c3\u30c8

    \n
  4. \n
\n
\n
\n

\u3053\u306e\u5f8cGNOME \u306b\u5165\u308a\u76f4\u3059\u3053\u3068\u3067\u5fa9\u65e7\u3067\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n

\"GNOME48

\n
\n
\n

\u99c4\u76ee\u3060\u3063\u305f\u5834\u5408 dconf reset -f / \u307e\u3067\u3084\u3063\u3066\u307f\u3066\u3082\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e
\n\u305d\u308c\u3067\u3082\u99c4\u76ee\u306a\u3089$HOME \u4ee5\u4e0b\u306eGNOME \u95a2\u9023\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u6d88\u3059\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e

\n
\n
\n

\u3053\u306e\u74b0\u5883\u306fDebian bookworm \u304b\u3089dist-upgrade \u3057\u305f\u74b0\u5883\u306a\u306e\u3067dist-uograde \u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u304a\u58ca\u308c\u305f\u306e\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e
\n\u62e1\u5f35\u6a5f\u80fd\u3082\u602a\u3057\u3044\u304b\u306a\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u4eca\u56de\u306e\u30ea\u30bb\u30c3\u30c8\u3067\u306f\u62e1\u5f35\u6a5f\u80fd\u306f\u8a2d\u5b9a\u3055\u308c\u305f\u307e\u307e\u3067\u52d5\u4f5c\u3057\u3066\u3044\u308b\u306e\u3067\u6050\u3089\u304f\u95a2\u4fc2\u306a\u304b\u3063\u305f\u3067\u3059\uff0e(\u62e1\u5f35\u6a5f\u80fd\u306e\u554f\u984c\u306e\u5834\u5408\u4eca\u56de\u306e\u65b9\u6cd5\u3067\u306f\u30ea\u30bb\u30c3\u30c8\u3067\u304d\u306a\u3044\u3067\u3059\u306d)

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W gnome lightdm dconf-cli\ndconf-cli       0.40.0-5\ngnome   1:48+2\nlightdm 1.32.0-6+b2\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 13 (trixie)\nRelease:        13\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u3044\u3064\u3082Xfce4 \u3067\u4f7f\u3063\u3066\u3044\u308bDebian statble(trixie) \u74b0\u5883\u3067\u4e45\u3005\u306bGNOME \u74b0\u5883\u3092\u8d77\u52d5\u3057\u305f\u3089\u64cd\u4f5c\u3092\u53d7\u3051\u4ed8\u3051\u307e\u305b\u3093\uff0e\n\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u5fa9\u65e7\u3057\u307e\u3057\u305f\uff0e\n\n\n\nGNOME \u306e\u72b6\u6cc1\u306f\u4e0a\u90e8\u306e\u6642\u8a08\u3084\u62e1\u5f35\u6a5f\u80fd\u306eRunCat \u306a\u3093\u304b\u306f\u52d5\u3044\u3066\u3044\u308b\u3051\u3069\u30ad\u30fc\u306e\u5165\u529b\u3092\u53d7\u3051\u4ed8\u3051\u305a\u64cd\u4f5c\u3067\u304d\u307e\u305b\u3093\uff0e\u30de\u30a6\u30b9\u3082\u30ab\u30fc\u30bd\u30eb\u304c\u5076\u306b\u898b\u3048\u308b\u3051\u3069\u30af\u30ea\u30c3\u30af\u3057\u3066\u3082\u4f55\u3082\u8d77\u304d\u307e\u305b\u3093\uff0e\n\u3068\u3044\u3046\u611f\u3058\u3067\u4f7f\u3044\u7269\u306b\u306a\u308a\u307e\u305b\u3093\uff0e\n\u5143\u3005\u307b\u3068\u3093\u3069\u4f7f\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u8a2d\u5b9a\u3092\u521d\u671f\u5316\u3057\u3066\u307f\u308b\u3053\u3068\u306b\uff0e\n\n\n\u307e\u305a\u306fGNOME \u304b\u3089\u3069\u3046\u306b\u304b\u3057\u3066\u629c\u3051\u307e\u3059\uff0e\u4eca\u56de\u306f\u30ad\u30fc\u5165\u529b\u3092\u53d7\u3051\u4ed8\u3051\u305aCtrl+Alt+F1 \u306a\u3093\u304b\u3067\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u3082\u964d\u308a\u308c\u306a\u3044\u306e\u3067\u56f0\u308a\u307e\u3057\u305f\u304c\uff0csshd \u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u305f\u306e\u3067\u305d\u308c\u3067\u5165\u3063\u3066\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u30de\u30cd\u30fc\u30b8\u30e3(\u4eca\u56de\u306fLightDM) \u3092\u518d\u8d77\u52d5\u3057\u3066\u629c\u3051\u307e\u3057\u305f\uff0e\n\n\n\n$ sudo service lightdm restart\n\n\n\n\n\n\nTip\n\n\n\n\u3082\u3057\u30ea\u30e2\u30fc\u30c8\u64cd\u4f5c\u3082\u3067\u304d\u306a\u3044\u5834\u5408Magic SysRq key \u306f\u53cd\u5fdc\u3057\u305f\u306e\u3067\u3053\u308c\u3067\u518d\u8d77\u52d5\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\n\nkernel.org/doc/Documentation/admin-guide/sysrq.rst\n\n\n\n\n\n\n\n\nGNOME \u304b\u3089\u629c\u3051\u305f\u5f8c\uff0cGNOME \u4ee5\u5916\u306e\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u304b\uff0c\u30b3\u30f3\u30bd\u30fc\u30eb\uff0cssh \u306a\u3069\u3067dconf \u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\uff0e\n\n\n\n$ dconf dump / > dconf.backup (1)\n$ dconf reset -f /org/gnome (2)\n\n\n\n\n\n\u5ff5\u306e\u70badconf \u3092backup\n\n\ndconf \u306egnome \u4ee5\u4e0b\u3092\u30ea\u30bb\u30c3\u30c8\n\n\n\n\n\u3053\u306e\u5f8cGNOME \u306b\u5165\u308a\u76f4\u3059\u3053\u3068\u3067\u5fa9\u65e7\u3067\u304d\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\u99c4\u76ee\u3060\u3063\u305f\u5834\u5408 dconf reset -f / \u307e\u3067\u3084\u3063\u3066\u307f\u3066\u3082\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\n\u305d\u308c\u3067\u3082\u99c4\u76ee\u306a\u3089$HOME \u4ee5\u4e0b\u306eGNOME \u95a2\u9023\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u6d88\u3059\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e\n\n\n\u3053\u306e\u74b0\u5883\u306fDebian bookworm \u304b\u3089dist-upgrade \u3057\u305f\u74b0\u5883\u306a\u306e\u3067dist-uograde \u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u304a\u58ca\u308c\u305f\u306e\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\n\u62e1\u5f35\u6a5f\u80fd\u3082\u602a\u3057\u3044\u304b\u306a\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u4eca\u56de\u306e\u30ea\u30bb\u30c3\u30c8\u3067\u306f\u62e1\u5f35\u6a5f\u80fd\u306f\u8a2d\u5b9a\u3055\u308c\u305f\u307e\u307e\u3067\u52d5\u4f5c\u3057\u3066\u3044\u308b\u306e\u3067\u6050\u3089\u304f\u95a2\u4fc2\u306a\u304b\u3063\u305f\u3067\u3059\uff0e(\u62e1\u5f35\u6a5f\u80fd\u306e\u554f\u984c\u306e\u5834\u5408\u4eca\u56de\u306e\u65b9\u6cd5\u3067\u306f\u30ea\u30bb\u30c3\u30c8\u3067\u304d\u306a\u3044\u3067\u3059\u306d)\n\n\n\u74b0\u5883\n\n$ dpkg-query -W gnome lightdm dconf-cli\ndconf-cli 0.40.0-5\ngnome 1:48+2\nlightdm 1.32.0-6+b2\n$ lsb_release -dr\nDescription: Debian GNU/Linux 13 (trixie)\nRelease: 13\n$ arch\nx86_64", "date_published": "2026-03-07T05:46:07+09:00", "date_modified": "2026-03-07T05:46:09+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "dconf", "Gnome", "Debian", "Linux", "trixie" ] }, { "id": "https://matoken.org/blog/?p=5297", "url": "https://matoken.org/blog/2026/03/02/ndlocr-lite/", "title": "dGPU\u304c\u306a\u304f\u3066\u3082\u52d5\u4f5c\u3059\u308b\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306eNDLOCR-Lite\u304c\u516c\u958b\u3055\u308c\u3066\u3044\u305f\u306e\u3067\u8a66\u3059", "content_html": "
\n
\n

\n
\n

\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u304cNDL\u30e9\u30dc\u3067NDLOCR-Lite \u3092\u516c\u958b\u3057\u307e\u3057\u305f\uff0e
\n\u5143\u3005NDLOCR \u304c\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u304cCUDA \u5bfe\u5fdc\u306eNVIDIA GPU \u304c\u5fc5\u9808\u3067\u3057\u305f\uff0e\u4eca\u56de\u306eNDLOCR-Lite \u306fdGPU \u306e\u7121\u3044PC \u3067\u3082\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306a\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n
\n
\n

NDLOCR-Lite\u306f\u3001NDLOCR\u306e\u8efd\u91cf\u7248\u3092\u76ee\u6307\u3057\u3066\u958b\u767a\u3057\u305fOCR\u3067\u3042\u308a\u3001\u30ce\u30fc\u30c8\u30d1\u30bd\u30b3\u30f3\u7b49\u306e\u4e00\u822c\u7684\u306a\u5bb6\u5ead\u7528\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3084OS\u74b0\u5883\u3067\u3001\u56f3\u66f8\u3084\u96d1\u8a8c\u3068\u3044\u3063\u305f\u8cc7\u6599\u306e\u30c7\u30b8\u30bf\u30eb\u5316\u753b\u50cf\u304b\u3089\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf\u304c\u4f5c\u6210\u3067\u304d\u308bOCR\u3067\u3059\u3002

\n
\n
\n

GPU\uff08Graphics Processing Unit\u3002\u753b\u50cf\u63cf\u753b\u7b49\u306e\u9ad8\u5ea6\u306a\u4e26\u5217\u8a08\u7b97\u3092\u51e6\u7406\u3059\u308b\u88c5\u7f6e\u3002\uff09\u3092\u5fc5\u8981\u3068\u305b\u305a\u3001\u8efd\u91cf\u306aOCR\u51e6\u7406\u304c\u53ef\u80fd\u3067\u3059\u3002

\n
\n
\n

\u307e\u305f\u3001NDLOCR\u304c\u4e0d\u5f97\u610f\u3068\u3057\u3066\u3044\u305f\u82f1\u6587\u3084\u624b\u66f8\u304d\u6587\u5b57\u7b49\u306b\u3064\u3044\u3066\u3082\u5b9f\u9a13\u7684\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002

\n
\n
\n\n
\n
\n

\u5b9f\u969b\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u3053\u3061\u3089\uff0e

\n
\n\n
\n

\u985e\u4f3c\u306e\u3082\u306e\u306bNDL\u53e4\u5178\u7c4dOCR-Lite \u3068\u3044\u3046\u3082\u306e\u3082\u3042\u308a\u307e\u3059\uff0e\u3053\u308c\u3082dGPU \u306e\u5fc5\u8981\u306a\u3044OCR \u3067\u81ea\u5206\u3067\u306f\u8aad\u3081\u306a\u3044\u53e4\u5178\u3092OCR \u3067\u8aad\u3081\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u308a\u3057\u3066\u9762\u767d\u3044\u3067\u3059\uff0e
\n\u4ee5\u4e0b\u306f\u4ee5\u524d #kagokug \u3067\u767a\u8868\u3057\u305f\u95a2\u9023\u8cc7\u6599\u3067\u3059\uff0e

\n
\n
\n\n
\n
\n
\n
\n
    \n
  • \n

    NDLOCR \u8981NVIDIA GPU

    \n
    \n
      \n
    • \n

      NDL\u53e4\u5178\u7c4dOCR-Lite\u306e\u3088\u3046\u306bNDLOCR-Lite\u304c\u51fa\u306a\u3044\u304b\u306a?

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n
\n
\n

\u3053\u306e\u3068\u304d\u3053\u3093\u306a\u3053\u3068\u3092\u66f8\u3044\u3066\u3044\u307e\u3057\u305f\u304c\u5b9f\u73fe\u3057\u307e\u3057\u305f :)

\n
\n
\n
\n
\n

GUI\u7248\u3092\u8a66\u3059

\n
\n
\n

Windows\u7248\u306f\u4ee5\u4e0b\u306b\u4f7f\u3044\u65b9\u304c\u3042\u308a\u307e\u3059\uff0e\u81ea\u5206\u306fLinux\u7248\u3092\u8a66\u3057\u307e\u3057\u305f\u304c\u8d77\u52d5\u5f8c\u306e\u64cd\u4f5c\u306f\u540c\u3058\u3060\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n\n
\n

GitHub \u306eReleases \u304b\u3089\u6700\u65b0\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u5165\u624b\u3057\u307e\u3059\uff0ev1.1.0 \u6642\u70b9\u3067\u306fLinux amd64 / macOS arm64, amd64 / Windows(amd64?) \u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e\u3053\u3053\u3067\u306fLinux\u7248\uff0e

\n
\n
\n
\n
$ wget -c https://github.com/ndl-lab/ndlocr-lite/releases/download/1.1.0/ndlocr_lite_v1.1.0_linux.tar.gz (1)\n$ sha512sum ndlocr_lite_v1.1.0_linux.tar.gz (2)\n61faed1fc843266095852697bbf29a721db4fb5a054f6d66ae8850301d22a4b1e29535eed150e439f7fd35760a17790a39cf0d45afd7c0ed72e7a3928e47ed93  ndlocr_lite_v1.1.0_linux.tar.gz\n$ fuse-archive ndlocr_lite_v1.1.0_linux.tar.gz (3)\n$ file ndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui (4)\nndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=55e769c1bfe893353a55cdddbe7066033dc540bf, for GNU/Linux 3.2.0, not stripped\n$ ndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui (5)
\n
\n
\n
\n
    \n
  1. \n

    \u30d0\u30a4\u30ca\u30ea\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u5165\u624b

    \n
  2. \n
  3. \n

    hash

    \n
  4. \n
  5. \n

    fuse-archive \u3067\u30a2\u30c9\u30db\u30c3\u30af\u306b\u5c55\u958b

    \n
  6. \n
  7. \n

    \u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u3092\u78ba\u8a8d

    \n
  8. \n
  9. \n

    NDLOCR-Lite \u5b9f\u884c

    \n
  10. \n
\n
\n
\n

NDL\u53e4\u5178\u7c4dOCR-Lite \u3068\u540c\u3058\u3088\u3046\u306b\u6271\u3048\u308b\u611f\u3058\u3067\u3059\uff0e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\uff0c\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u306e\u683c\u7d0d\u3055\u308c\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u4e00\u62ec\u51e6\u7406\u306a\u3069\u304c\u53ef\u80fd\u3067\u3059\uff0e
\n\u305d\u306e\u4ed6\uff0c\u753b\u9762\u306e\u6307\u5b9a\u3057\u305f\u7bc4\u56f2\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u3066OCR \u3059\u308b\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9\u3082\u4fbf\u5229\u3067\u3059\uff0e\u305f\u3060\uff0c\u3053\u306e\u30e2\u30fc\u30c9\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u306fi3 wm \u3067\u306f\u5225\u306eworkspace \u306f\u30ad\u30e3\u30d7\u30c1\u30e3\u3067\u304d\u306a\u3055\u305d\u3046\u3067\u5c11\u3057\u4f7f\u3044\u52dd\u624b\u304c\u60aa\u3044\u3067\u3059\uff0e

\n
\n
\n

\"NDLOCR

\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u7d0d\u8c37\u53cb\u4e00 \u8a33\u8a3b\u300e\u9ed2\u732b\u300f,\u5065\u6587\u793e,1952. \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2436688\n
\n
\n
\n
\n
\n

CLI\u7248\u3092\u4f7f\u3046

\n
\n
\n

CLI\u7248\u306fPython 3.10+ \u304c\u5fc5\u8981\u3067\u3059\uff0e\u4eca\u56de\u306fDebian sid amd64 \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5c0e\u5165\u3057\u305fPython 3.13.12 \u3092\u5229\u7528\u3057\u307e\u3057\u305f\uff0e
\nREADME.md \u306b\u306fpip \u3067\u306e\u5c0e\u5165\u3068\uff0cuv \u3067\u306e\u5c0e\u5165\u304c\u7d39\u4ecb\u3055\u308c\u3066\u3044\u307e\u3059\uff0e\u983b\u7e41\u306b\u4f7f\u3046\u5834\u5408\u306fuv \u306e\u65b9\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u304a\u597d\u307f\u306e\u65b9\u3067\uff0e

\n
\n
\n
pip \u3067venv \u4ee5\u4e0b\u306b\u5c0e\u5165\u3057\u305f\u4f8b
\n
\n
$ git clone https://github.com/ndl-lab/ndlocr-lite\n$ cd ndlocr-lite\n$ python -m venv venv\n$ source venv/bin/activate\n$ pip install -r requirements.txt\n$ python3 src/ocr.py -h\nusage: ocr.py [-h] [--sourcedir SOURCEDIR] [--sourceimg SOURCEIMG] --output OUTPUT [--viz VIZ] [--det-weights DET_WEIGHTS] [--det-classes DET_CLASSES] [--det-score-threshold DET_SCORE_THRESHOLD] [--det-conf-threshold DET_CONF_THRESHOLD]\n              [--det-iou-threshold DET_IOU_THRESHOLD] [--simple-mode SIMPLE_MODE] [--rec-weights30 REC_WEIGHTS30] [--rec-weights50 REC_WEIGHTS50] [--rec-weights REC_WEIGHTS] [--rec-classes REC_CLASSES] [--device {cpu,cuda}]\n\nArguments for NDLkotenOCR-Lite\n\noptions:\n  -h, --help            show this help message and exit\n  --sourcedir SOURCEDIR\n                        Path to image directory\n  --sourceimg SOURCEIMG\n                        Path to image directory\n  --output OUTPUT       Path to output directory\n  --viz VIZ             Save visualized image\n  --det-weights DET_WEIGHTS\n                        Path to deim onnx file\n  --det-classes DET_CLASSES\n                        Path to list of class in yaml file\n  --det-score-threshold DET_SCORE_THRESHOLD\n  --det-conf-threshold DET_CONF_THRESHOLD\n  --det-iou-threshold DET_IOU_THRESHOLD\n  --simple-mode SIMPLE_MODE\n                        Read line with one model(Setting this option to True will slow down processing, but it simplifies the architecture and may slightly improve accuracy.)\n  --rec-weights30 REC_WEIGHTS30\n                        Path to parseq-tiny onnx file\n  --rec-weights50 REC_WEIGHTS50\n                        Path to parseq-tiny onnx file\n  --rec-weights REC_WEIGHTS\n                        Path to parseq-tiny onnx file\n  --rec-classes REC_CLASSES\n                        Path to list of class in yaml file\n  --device {cpu,cuda}   Device use (cpu or cuda)
\n
\n
\n
\n
uv \u3067\u5c0e\u5165\u3057\u305f\u4f8b
\n
\n
$ git clone https://github.com/ndl-lab/ndlocr-lite\n$ cd ndlocr-lite\n$ uv tool install .\n$ which ndlocr-lite\n/home/matoken/.local/bin/ndlocr-lite\n$ ndlocr-lite --help\nusage: ndlocr-lite [-h] [--sourcedir SOURCEDIR] [--sourceimg SOURCEIMG] --output OUTPUT [--viz VIZ] [--det-weights DET_WEIGHTS] [--det-classes DET_CLASSES] [--det-score-threshold DET_SCORE_THRESHOLD]\n                   [--det-conf-threshold DET_CONF_THRESHOLD] [--det-iou-threshold DET_IOU_THRESHOLD] [--simple-mode SIMPLE_MODE] [--rec-weights30 REC_WEIGHTS30] [--rec-weights50 REC_WEIGHTS50] [--rec-weights REC_WEIGHTS]\n                   [--rec-classes REC_CLASSES] [--device {cpu,cuda}]\n\nArguments for NDLkotenOCR-Lite\n\noptions:\n  -h, --help            show this help message and exit\n  --sourcedir SOURCEDIR\n                        Path to image directory\n  --sourceimg SOURCEIMG\n                        Path to image directory\n  --output OUTPUT       Path to output directory\n  --viz VIZ             Save visualized image\n  --det-weights DET_WEIGHTS\n                        Path to deim onnx file\n  --det-classes DET_CLASSES\n                        Path to list of class in yaml file\n  --det-score-threshold DET_SCORE_THRESHOLD\n  --det-conf-threshold DET_CONF_THRESHOLD\n  --det-iou-threshold DET_IOU_THRESHOLD\n  --simple-mode SIMPLE_MODE\n                        Read line with one model(Setting this option to True will slow down processing, but it simplifies the architecture and may slightly improve accuracy.)\n  --rec-weights30 REC_WEIGHTS30\n                        Path to parseq-tiny onnx file\n  --rec-weights50 REC_WEIGHTS50\n                        Path to parseq-tiny onnx file\n  --rec-weights REC_WEIGHTS\n                        Path to parseq-tiny onnx file\n  --rec-classes REC_CLASSES\n                        Path to list of class in yaml file\n  --device {cpu,cuda}   Device use (cpu or cuda)
\n
\n
\n
\n

\u3082\u3057cuda \u5bfe\u5fdcGPU \u306e\u3042\u308b\u74b0\u5883\u3067\u3042\u308c\u3070\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u306b --device cuda \u3092\u6e21\u3059\u3053\u3068\u3067\u901f\u304f\u306a\u308b\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n
\n

cli\u7248\u5b9f\u884c\u4f8b

\n
\n

--sourcedir (\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u8907\u6570\u753b\u50cf)\u304b --sourceimg (1\u3064\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb)\u3067\u51e6\u7406\u5bfe\u8c61\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u51e6\u7406\u5bfe\u8c61\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\uff0c --output \u3067\u7d50\u679c\u306e\u51fa\u529b\u5148\u3092\u6307\u5b9a\uff0c--viz True \u3067\u53ef\u8996\u5316\u753b\u50cf\u3092\u6709\u52b9\u306b\u3057\u3066\u5b9f\u884c\uff08\u30aa\u30d7\u30b7\u30e7\u30f3)

\n
\n
\n
\n
$ time ndlocr-lite --sourcedir . --output . --viz True\n[INFO] Intialize Model\n[INFO] Inference Image\n69\n[INFO] Saving result on ./viz_digidepo_2436688_0001-0.jpg\nTotal calculation time (Detection + Recognition): 13.220851182937622\n  :\nreal    2m15.882s\nuser    10m16.273s\nsys     0m5.189s\n$ ls\ndigidepo_2436688_0001-0.jpg   digidepo_2436688_0001-4.json  digidepo_2436688_0001-8.txt\ndigidepo_2436688_0001-0.json  digidepo_2436688_0001-4.txt   digidepo_2436688_0001-8.xml\ndigidepo_2436688_0001-0.txt   digidepo_2436688_0001-4.xml   digidepo_2436688_0001-9.jpg\ndigidepo_2436688_0001-0.xml   digidepo_2436688_0001-5.jpg   digidepo_2436688_0001-9.json\ndigidepo_2436688_0001-1.jpg   digidepo_2436688_0001-5.json  digidepo_2436688_0001-9.txt\ndigidepo_2436688_0001-1.json  digidepo_2436688_0001-5.txt   digidepo_2436688_0001-9.xml\ndigidepo_2436688_0001-1.txt   digidepo_2436688_0001-5.xml   viz_digidepo_2436688_0001-0.jpg\ndigidepo_2436688_0001-1.xml   digidepo_2436688_0001-6.jpg   viz_digidepo_2436688_0001-1.jpg\ndigidepo_2436688_0001-2.jpg   digidepo_2436688_0001-6.json  viz_digidepo_2436688_0001-2.jpg\ndigidepo_2436688_0001-2.json  digidepo_2436688_0001-6.txt   viz_digidepo_2436688_0001-3.jpg\ndigidepo_2436688_0001-2.txt   digidepo_2436688_0001-6.xml   viz_digidepo_2436688_0001-4.jpg\ndigidepo_2436688_0001-2.xml   digidepo_2436688_0001-7.jpg   viz_digidepo_2436688_0001-5.jpg\ndigidepo_2436688_0001-3.jpg   digidepo_2436688_0001-7.json  viz_digidepo_2436688_0001-6.jpg\ndigidepo_2436688_0001-3.json  digidepo_2436688_0001-7.txt   viz_digidepo_2436688_0001-7.jpg\ndigidepo_2436688_0001-3.txt   digidepo_2436688_0001-7.xml   viz_digidepo_2436688_0001-8.jpg\ndigidepo_2436688_0001-3.xml   digidepo_2436688_0001-8.jpg   viz_digidepo_2436688_0001-9.jpg\ndigidepo_2436688_0001-4.jpg   digidepo_2436688_0001-8.json
\n
\n
\n
\n

\u3053\u3053\u3067\u306e\u30d5\u30a1\u30a4\u30eb\u7fa4\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
digidepo_2436688_0001-“${N}”.jpg
\n
\n

OCR \u5bfe\u8c61\u753b\u50cf

\n
\n
digidepo_2436688_0001-“${N}”.json, digidepo_2436688_0001-“${N}”.txt, digidepo_2436688_0001-“${N}”.xml
\n
\n

OCR \u7d50\u679c

\n
\n
viz_digidepo_2436688_0001-“${N}”.jpg
\n
\n

\u53ef\u8996\u5316\u753b\u50cf(\u30aa\u30d7\u30b7\u30e7\u30f3)

\n
\n
\n
\n
\n

\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fpdf \u306e10\u30b3\u30de(20\u30da\u30fc\u30b8\u5206)\u3092Imagemagick \u3067jpeg \u753b\u50cf\u306b\u5909\u63db\u3057\u305f\u3082\u306e\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3057\u305f\u3068\u3053\u308d2\u520616\u79d2\u307b\u3069\u639b\u304b\u308a\u307e\u3057\u305f\uff0e1\u753b\u50cf\u3042\u305f\u308a13.6\u79d2\uff0c1\u30da\u30fc\u30b8\u3042\u305f\u308a6.8\u79d2\u307b\u3069\uff0e\u82f1\u8a9e\u65e5\u672c\u8a9e\u6df7\u3058\u308a\u3067\u3082\u7cbe\u5ea6\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\nOCR \u74b0\u5883\u306f\uff0cLENOVO ThinkPad L13 (G1), CPU: Intel® Core™ i7-10510U CPU @ 1.80GHz, RAM: DDR4 16GB, SSD: NVMe TOSHIBA KXG6AZNV512G \u306bDebian sid amd64 \u3092\u5c0e\u5165\u3057\u305f\u74b0\u5883\u3067\u3059\uff0e

\n
\n
\n

\u30b9\u30ad\u30e3\u30f3\u3057\u305f\u753b\u50cf\u30c7\u30fc\u30bf\u306f\u3053\u3093\u306a\u611f\u3058(1\u30b3\u30de2\u30da\u30fc\u30b8\u5206)

\n
\n
\n
\n
$ file viz_digidepo_2436688_0001-0.jpg\nviz_digidepo_2436688_0001-0.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 2481x1761, components 3
\n
\n
\n
\n

GNU time \u306e -f %M \u3067RAM \u306e\u5229\u7528\u91cf\u3092\u898b\u305f\u3068\u3053\u308d\u3053\u306e\u753b\u50cf1\u679a\u306e\u51e6\u7406\u3067600MB \u8fd1\u304f\uff0c10\u679a\u3067860MB \u7a0b\u3067\u3057\u305f\uff0e

\n
\n
\n

\"NDLOCR

\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u7d0d\u8c37\u53cb\u4e00 \u8a33\u8a3b\u300e\u9ed2\u732b\u300f,\u5065\u6587\u793e,1952. \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2436688\n
\n
\n
\n
\n
\n
\n

Linux\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3067\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9

\n
\n
\n

NDLOCR-Lite GUI\u7248\u306b\u306f\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9\u304c\u3042\u308a\u4fbf\u5229\u305d\u3046\u3067\u3059\u304c\uff0cNDLOCR-Lite \u3092\u8d77\u52d5\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e
\n\u540c\u3058\u3088\u3046\u306a\u3053\u3068\u3092\u4ee5\u524d\u304b\u3089 tesseract-ocr \u3067\u3084\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\u3053\u308c\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u306b\u767b\u9332\u3057\u305f\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3067\u30b9\u30af\u30ea\u30fc\u30f3\u30ad\u30e3\u30d7\u30c1\u30e3\u3068OCR \u3092\u884c\u3044\uff0c\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u7d50\u679c\u3092\u8fd4\u3059\u3082\u306e\u3067\u3057\u305f\uff0e\u3053\u308c\u3092NDLOCR-Lite \u3067\u52d5\u304f\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ cat ~/bin/ndlocr-lite.bash\n#!/bin/bash\n\nTMPDIR=$(mktemp -d)\nIMAGEFILE=\"$(mktemp).png\"\nimport png:\"${IMAGEFILE}\" (1)\n#sixelv \"${IMAGEFILE}\"\nconvert \"${IMAGEFILE}\" sixel: (2)\nndlocr-lite --sourceimg \"${IMAGEFILE}\" --output \"${TMPDIR}\" (3)\n\nif [ $? ]; then\n  cat \"${TMPDIR}\"/*.txt | pee cat \"xsel -b\" (4)\n  notify-send 'ocr📋(primary)' (5)\nelse\n  notify-send 'ocr error'\n  exit 1\nfi\n\nrm \"${IMAGEFILE}\" (6)\nrm -r \"${TMPDIR}\"
\n
\n
\n
\n
    \n
  1. \n

    Imagemagick \u306eimport \u30b3\u30de\u30f3\u30c9\u3067\u4efb\u610f\u306e\u5834\u6240\u3092\u30ad\u30e3\u30d7\u30c1\u30e3

    \n
  2. \n
  3. \n

    \u30c7\u30d0\u30c3\u30b0\u7528\u306b\u753b\u50cf\u51fa\u529b

    \n
  4. \n
  5. \n

    NDLOCR-Lite \u3067\u6587\u5b57\u8d77\u3053\u3057

    \n
  6. \n
  7. \n

    \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u683c\u7d0d

    \n
  8. \n
  9. \n

    notify-send \u3067\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306b\u901a\u77e5

    \n
  10. \n
\n
\n
\n

\u5b9f\u884c\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\uff0e\u52d5\u753b\u5185\u306e\u30b9\u30e9\u30a4\u30c9\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u3066\u3044\u307e\u3059\uff0e\u89e3\u50cf\u5ea6\u304c\u4f4e\u3044\u3068\u3044\u307e\u3044\u3061\u3067\u3059\u304c\u89e3\u50cf\u5ea6\u304c\u9ad8\u3044\u3068\u3044\u3044\u611f\u3058\u3067\u3059\uff0etermial \u3067\u53e9\u304f\u3068\u30c7\u30d0\u30c3\u30b0\u7528\u306bSixel \u3067\u30ad\u30e3\u30d7\u30c1\u30e3\u753b\u50cf\u3082\u51fa\u3059\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n

\"NDLOCR

\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92026 Tokyo/Spring 2\u65e5\u76ee\u30e9\u30a4\u30c8\u30cb\u30f3\u30b0\u30c8\u30fc\u30af\u306e\u30aa\u30fc\u30d7\u30cb\u30f3\u30b0\u3088\u308a https://www.youtube.com/watch?v=xtb3ZFb6WvA\n
\n
\n
\n

\u3053\u306ebash script \u3092WindowManager \u306b\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3059\uff0e\u4ee5\u4e0b\u306fi3 wm \u3067 Super+Shift+o \u3067\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n

~/.config/i3/config

\n
\n
\n
\n
$ grep ocr ~/.config/i3/config\n#OCR https://gitlab.com/matoken/kagolug-2022.05/-/blob/main/slide/ocr.adoc\nbindsym $mod+Shift+o exec --no-startup-id ~/bin/ndlocr-lite.bash
\n
\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067\u4fbf\u5229\u306b\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e
\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u9060\u9694\u9001\u4fe1\u30b5\u30fc\u30d3\u30b9\u3067\u95b2\u89a7\u53ef\u80fd\u306a\u66f8\u7c4d\u306a\u3069\u3092\u5c0f\u3055\u306a\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306a\u3069\u306e\u7aef\u672b\u3067\u8aad\u3080\u306e\u306f\u3044\u307e\u3044\u3061\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u3053\u308c\u3067\u6587\u5b57\u8d77\u3053\u3057\u3057\u3066\u8aad\u3093\u3067\u307f\u308b\u306e\u3082\u3042\u308a\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0c

\n
\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
\n
$ git log --pretty=oneline -1\n4f0748be4244a2e36d4dd43af05d6eebded3d56d (HEAD -> master, origin/master, origin/HEAD) Merge pull request #13 from mattn/fallback-line\n$ pipx list | grep uv\n   package uv 0.10.7, installed using Python 3.13.3\n    - uv\n    - uvx\n$ dpkg-query -W python3 python3-venv\npython3 3.13.9-3\npython3-venv    3.13.9-3\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n
\n

toot

\n
\n\n
\n
\n", "content_text": "\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u304cNDL\u30e9\u30dc\u3067NDLOCR-Lite \u3092\u516c\u958b\u3057\u307e\u3057\u305f\uff0e\n\u5143\u3005NDLOCR \u304c\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u304cCUDA \u5bfe\u5fdc\u306eNVIDIA GPU \u304c\u5fc5\u9808\u3067\u3057\u305f\uff0e\u4eca\u56de\u306eNDLOCR-Lite \u306fdGPU \u306e\u7121\u3044PC \u3067\u3082\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306a\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\nNDLOCR-Lite\u306f\u3001NDLOCR\u306e\u8efd\u91cf\u7248\u3092\u76ee\u6307\u3057\u3066\u958b\u767a\u3057\u305fOCR\u3067\u3042\u308a\u3001\u30ce\u30fc\u30c8\u30d1\u30bd\u30b3\u30f3\u7b49\u306e\u4e00\u822c\u7684\u306a\u5bb6\u5ead\u7528\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3084OS\u74b0\u5883\u3067\u3001\u56f3\u66f8\u3084\u96d1\u8a8c\u3068\u3044\u3063\u305f\u8cc7\u6599\u306e\u30c7\u30b8\u30bf\u30eb\u5316\u753b\u50cf\u304b\u3089\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf\u304c\u4f5c\u6210\u3067\u304d\u308bOCR\u3067\u3059\u3002\n\n\nGPU\uff08Graphics Processing Unit\u3002\u753b\u50cf\u63cf\u753b\u7b49\u306e\u9ad8\u5ea6\u306a\u4e26\u5217\u8a08\u7b97\u3092\u51e6\u7406\u3059\u308b\u88c5\u7f6e\u3002\uff09\u3092\u5fc5\u8981\u3068\u305b\u305a\u3001\u8efd\u91cf\u306aOCR\u51e6\u7406\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\u307e\u305f\u3001NDLOCR\u304c\u4e0d\u5f97\u610f\u3068\u3057\u3066\u3044\u305f\u82f1\u6587\u3084\u624b\u66f8\u304d\u6587\u5b57\u7b49\u306b\u3064\u3044\u3066\u3082\u5b9f\u9a13\u7684\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002\n\n\n\n— NDLOCR-Lite\u306e\u516c\u958b\u306b\u3064\u3044\u3066 | NDL\u30e9\u30dc\n\n\n\n\u5b9f\u969b\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u3053\u3061\u3089\uff0e\n\n\n\n\nndl-lab/ndlocr-lite: NDLOCR\u2011Lite application repository (including source code)\n\n\n\n\n\u985e\u4f3c\u306e\u3082\u306e\u306bNDL\u53e4\u5178\u7c4dOCR-Lite \u3068\u3044\u3046\u3082\u306e\u3082\u3042\u308a\u307e\u3059\uff0e\u3053\u308c\u3082dGPU \u306e\u5fc5\u8981\u306a\u3044OCR \u3067\u81ea\u5206\u3067\u306f\u8aad\u3081\u306a\u3044\u53e4\u5178\u3092OCR \u3067\u8aad\u3081\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u308a\u3057\u3066\u9762\u767d\u3044\u3067\u3059\uff0e\n\u4ee5\u4e0b\u306f\u4ee5\u524d #kagokug \u3067\u767a\u8868\u3057\u305f\u95a2\u9023\u8cc7\u6599\u3067\u3059\uff0e\n\n\n\n\nOCR\u3067\u753b\u50cf\u6587\u5b57\u3092\u6587\u5b57\u30c7\u30fc\u30bf\u306b \u9e7f\u5150\u5cf6Linux\u52c9\u5f37\u4f1a 2022.05 \u3067\u767a\u8868 \n\u30d3\u30c7\u30aa\u3084\u753b\u50cf\u306a\u3069\u306b\u66f8\u304b\u308c\u305f\u6587\u5b57\u3092OCR \u3059\u308bScript \u3084NDLOCR \u306e\u7d39\u4ecb\n\n\n\u6700\u8fd1\u8a66\u3057\u305fLinux\u306eOCR\u30c4\u30fc\u30eb(NDL\u53e4\u5178\u7c4dOCR-Lite/YomiToku) \u9e7f\u5150\u5cf6Linux\u52c9\u5f37\u4f1a 2024.12 \u3067\u767a\u8868 \nDL\u53e4\u5178\u7c4dOCR-Lite \u306e\u7d39\u4ecb\u306a\u3069\n\n\n\n\n\n\n\n\nNDLOCR \u8981NVIDIA GPU\n\n\n\nNDL\u53e4\u5178\u7c4dOCR-Lite\u306e\u3088\u3046\u306bNDLOCR-Lite\u304c\u51fa\u306a\u3044\u304b\u306a?\n\n\n\n\n\n\n\n\n\n\u3053\u306e\u3068\u304d\u3053\u3093\u306a\u3053\u3068\u3092\u66f8\u3044\u3066\u3044\u307e\u3057\u305f\u304c\u5b9f\u73fe\u3057\u307e\u3057\u305f :)\n\n\n\n\nGUI\u7248\u3092\u8a66\u3059\n\n\nWindows\u7248\u306f\u4ee5\u4e0b\u306b\u4f7f\u3044\u65b9\u304c\u3042\u308a\u307e\u3059\uff0e\u81ea\u5206\u306fLinux\u7248\u3092\u8a66\u3057\u307e\u3057\u305f\u304c\u8d77\u52d5\u5f8c\u306e\u64cd\u4f5c\u306f\u540c\u3058\u3060\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\n\nNDLOCR-Lite\u306e\u4f7f\u3044\u65b9 | NDL\u30e9\u30dc\n\n\n\n\nGitHub \u306eReleases \u304b\u3089\u6700\u65b0\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u5165\u624b\u3057\u307e\u3059\uff0ev1.1.0 \u6642\u70b9\u3067\u306fLinux amd64 / macOS arm64, amd64 / Windows(amd64?) \u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e\u3053\u3053\u3067\u306fLinux\u7248\uff0e\n\n\n\n$ wget -c https://github.com/ndl-lab/ndlocr-lite/releases/download/1.1.0/ndlocr_lite_v1.1.0_linux.tar.gz (1)\n$ sha512sum ndlocr_lite_v1.1.0_linux.tar.gz (2)\n61faed1fc843266095852697bbf29a721db4fb5a054f6d66ae8850301d22a4b1e29535eed150e439f7fd35760a17790a39cf0d45afd7c0ed72e7a3928e47ed93 ndlocr_lite_v1.1.0_linux.tar.gz\n$ fuse-archive ndlocr_lite_v1.1.0_linux.tar.gz (3)\n$ file ndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui (4)\nndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=55e769c1bfe893353a55cdddbe7066033dc540bf, for GNU/Linux 3.2.0, not stripped\n$ ndlocr_lite_v1.1.0_linux/linux/ndlocr_lite_gui (5)\n\n\n\n\n\n\u30d0\u30a4\u30ca\u30ea\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u5165\u624b\n\n\nhash\n\n\nfuse-archive \u3067\u30a2\u30c9\u30db\u30c3\u30af\u306b\u5c55\u958b\n\n\n\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u3092\u78ba\u8a8d\n\n\nNDLOCR-Lite \u5b9f\u884c\n\n\n\n\nNDL\u53e4\u5178\u7c4dOCR-Lite \u3068\u540c\u3058\u3088\u3046\u306b\u6271\u3048\u308b\u611f\u3058\u3067\u3059\uff0e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\uff0c\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u306e\u683c\u7d0d\u3055\u308c\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u4e00\u62ec\u51e6\u7406\u306a\u3069\u304c\u53ef\u80fd\u3067\u3059\uff0e\n\u305d\u306e\u4ed6\uff0c\u753b\u9762\u306e\u6307\u5b9a\u3057\u305f\u7bc4\u56f2\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u3066OCR \u3059\u308b\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9\u3082\u4fbf\u5229\u3067\u3059\uff0e\u305f\u3060\uff0c\u3053\u306e\u30e2\u30fc\u30c9\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u306fi3 wm \u3067\u306f\u5225\u306eworkspace \u306f\u30ad\u30e3\u30d7\u30c1\u30e3\u3067\u304d\u306a\u3055\u305d\u3046\u3067\u5c11\u3057\u4f7f\u3044\u52dd\u624b\u304c\u60aa\u3044\u3067\u3059\uff0e\n\n\n\n\n\n\n\n\nNote\n\n\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u7d0d\u8c37\u53cb\u4e00 \u8a33\u8a3b\u300e\u9ed2\u732b\u300f,\u5065\u6587\u793e,1952. \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2436688\n\n\n\n\n\n\n\nCLI\u7248\u3092\u4f7f\u3046\n\n\nCLI\u7248\u306fPython 3.10+ \u304c\u5fc5\u8981\u3067\u3059\uff0e\u4eca\u56de\u306fDebian sid amd64 \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5c0e\u5165\u3057\u305fPython 3.13.12 \u3092\u5229\u7528\u3057\u307e\u3057\u305f\uff0e\nREADME.md \u306b\u306fpip \u3067\u306e\u5c0e\u5165\u3068\uff0cuv \u3067\u306e\u5c0e\u5165\u304c\u7d39\u4ecb\u3055\u308c\u3066\u3044\u307e\u3059\uff0e\u983b\u7e41\u306b\u4f7f\u3046\u5834\u5408\u306fuv \u306e\u65b9\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u304a\u597d\u307f\u306e\u65b9\u3067\uff0e\n\n\npip \u3067venv \u4ee5\u4e0b\u306b\u5c0e\u5165\u3057\u305f\u4f8b\n\n$ git clone https://github.com/ndl-lab/ndlocr-lite\n$ cd ndlocr-lite\n$ python -m venv venv\n$ source venv/bin/activate\n$ pip install -r requirements.txt\n$ python3 src/ocr.py -h\nusage: ocr.py [-h] [--sourcedir SOURCEDIR] [--sourceimg SOURCEIMG] --output OUTPUT [--viz VIZ] [--det-weights DET_WEIGHTS] [--det-classes DET_CLASSES] [--det-score-threshold DET_SCORE_THRESHOLD] [--det-conf-threshold DET_CONF_THRESHOLD]\n [--det-iou-threshold DET_IOU_THRESHOLD] [--simple-mode SIMPLE_MODE] [--rec-weights30 REC_WEIGHTS30] [--rec-weights50 REC_WEIGHTS50] [--rec-weights REC_WEIGHTS] [--rec-classes REC_CLASSES] [--device {cpu,cuda}]\n\nArguments for NDLkotenOCR-Lite\n\noptions:\n -h, --help show this help message and exit\n --sourcedir SOURCEDIR\n Path to image directory\n --sourceimg SOURCEIMG\n Path to image directory\n --output OUTPUT Path to output directory\n --viz VIZ Save visualized image\n --det-weights DET_WEIGHTS\n Path to deim onnx file\n --det-classes DET_CLASSES\n Path to list of class in yaml file\n --det-score-threshold DET_SCORE_THRESHOLD\n --det-conf-threshold DET_CONF_THRESHOLD\n --det-iou-threshold DET_IOU_THRESHOLD\n --simple-mode SIMPLE_MODE\n Read line with one model(Setting this option to True will slow down processing, but it simplifies the architecture and may slightly improve accuracy.)\n --rec-weights30 REC_WEIGHTS30\n Path to parseq-tiny onnx file\n --rec-weights50 REC_WEIGHTS50\n Path to parseq-tiny onnx file\n --rec-weights REC_WEIGHTS\n Path to parseq-tiny onnx file\n --rec-classes REC_CLASSES\n Path to list of class in yaml file\n --device {cpu,cuda} Device use (cpu or cuda)\n\n\n\nuv \u3067\u5c0e\u5165\u3057\u305f\u4f8b\n\n$ git clone https://github.com/ndl-lab/ndlocr-lite\n$ cd ndlocr-lite\n$ uv tool install .\n$ which ndlocr-lite\n/home/matoken/.local/bin/ndlocr-lite\n$ ndlocr-lite --help\nusage: ndlocr-lite [-h] [--sourcedir SOURCEDIR] [--sourceimg SOURCEIMG] --output OUTPUT [--viz VIZ] [--det-weights DET_WEIGHTS] [--det-classes DET_CLASSES] [--det-score-threshold DET_SCORE_THRESHOLD]\n [--det-conf-threshold DET_CONF_THRESHOLD] [--det-iou-threshold DET_IOU_THRESHOLD] [--simple-mode SIMPLE_MODE] [--rec-weights30 REC_WEIGHTS30] [--rec-weights50 REC_WEIGHTS50] [--rec-weights REC_WEIGHTS]\n [--rec-classes REC_CLASSES] [--device {cpu,cuda}]\n\nArguments for NDLkotenOCR-Lite\n\noptions:\n -h, --help show this help message and exit\n --sourcedir SOURCEDIR\n Path to image directory\n --sourceimg SOURCEIMG\n Path to image directory\n --output OUTPUT Path to output directory\n --viz VIZ Save visualized image\n --det-weights DET_WEIGHTS\n Path to deim onnx file\n --det-classes DET_CLASSES\n Path to list of class in yaml file\n --det-score-threshold DET_SCORE_THRESHOLD\n --det-conf-threshold DET_CONF_THRESHOLD\n --det-iou-threshold DET_IOU_THRESHOLD\n --simple-mode SIMPLE_MODE\n Read line with one model(Setting this option to True will slow down processing, but it simplifies the architecture and may slightly improve accuracy.)\n --rec-weights30 REC_WEIGHTS30\n Path to parseq-tiny onnx file\n --rec-weights50 REC_WEIGHTS50\n Path to parseq-tiny onnx file\n --rec-weights REC_WEIGHTS\n Path to parseq-tiny onnx file\n --rec-classes REC_CLASSES\n Path to list of class in yaml file\n --device {cpu,cuda} Device use (cpu or cuda)\n\n\n\n\u3082\u3057cuda \u5bfe\u5fdcGPU \u306e\u3042\u308b\u74b0\u5883\u3067\u3042\u308c\u3070\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u306b --device cuda \u3092\u6e21\u3059\u3053\u3068\u3067\u901f\u304f\u306a\u308b\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\ncli\u7248\u5b9f\u884c\u4f8b\n\n--sourcedir (\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u8907\u6570\u753b\u50cf)\u304b --sourceimg (1\u3064\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb)\u3067\u51e6\u7406\u5bfe\u8c61\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u51e6\u7406\u5bfe\u8c61\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\uff0c --output \u3067\u7d50\u679c\u306e\u51fa\u529b\u5148\u3092\u6307\u5b9a\uff0c--viz True \u3067\u53ef\u8996\u5316\u753b\u50cf\u3092\u6709\u52b9\u306b\u3057\u3066\u5b9f\u884c\uff08\u30aa\u30d7\u30b7\u30e7\u30f3)\n\n\n\n$ time ndlocr-lite --sourcedir . --output . --viz True\n[INFO] Intialize Model\n[INFO] Inference Image\n69\n[INFO] Saving result on ./viz_digidepo_2436688_0001-0.jpg\nTotal calculation time (Detection + Recognition): 13.220851182937622\n :\nreal 2m15.882s\nuser 10m16.273s\nsys 0m5.189s\n$ ls\ndigidepo_2436688_0001-0.jpg digidepo_2436688_0001-4.json digidepo_2436688_0001-8.txt\ndigidepo_2436688_0001-0.json digidepo_2436688_0001-4.txt digidepo_2436688_0001-8.xml\ndigidepo_2436688_0001-0.txt digidepo_2436688_0001-4.xml digidepo_2436688_0001-9.jpg\ndigidepo_2436688_0001-0.xml digidepo_2436688_0001-5.jpg digidepo_2436688_0001-9.json\ndigidepo_2436688_0001-1.jpg digidepo_2436688_0001-5.json digidepo_2436688_0001-9.txt\ndigidepo_2436688_0001-1.json digidepo_2436688_0001-5.txt digidepo_2436688_0001-9.xml\ndigidepo_2436688_0001-1.txt digidepo_2436688_0001-5.xml viz_digidepo_2436688_0001-0.jpg\ndigidepo_2436688_0001-1.xml digidepo_2436688_0001-6.jpg viz_digidepo_2436688_0001-1.jpg\ndigidepo_2436688_0001-2.jpg digidepo_2436688_0001-6.json viz_digidepo_2436688_0001-2.jpg\ndigidepo_2436688_0001-2.json digidepo_2436688_0001-6.txt viz_digidepo_2436688_0001-3.jpg\ndigidepo_2436688_0001-2.txt digidepo_2436688_0001-6.xml viz_digidepo_2436688_0001-4.jpg\ndigidepo_2436688_0001-2.xml digidepo_2436688_0001-7.jpg viz_digidepo_2436688_0001-5.jpg\ndigidepo_2436688_0001-3.jpg digidepo_2436688_0001-7.json viz_digidepo_2436688_0001-6.jpg\ndigidepo_2436688_0001-3.json digidepo_2436688_0001-7.txt viz_digidepo_2436688_0001-7.jpg\ndigidepo_2436688_0001-3.txt digidepo_2436688_0001-7.xml viz_digidepo_2436688_0001-8.jpg\ndigidepo_2436688_0001-3.xml digidepo_2436688_0001-8.jpg viz_digidepo_2436688_0001-9.jpg\ndigidepo_2436688_0001-4.jpg digidepo_2436688_0001-8.json\n\n\n\n\u3053\u3053\u3067\u306e\u30d5\u30a1\u30a4\u30eb\u7fa4\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\ndigidepo_2436688_0001-“${N}”.jpg\n\nOCR \u5bfe\u8c61\u753b\u50cf\n\ndigidepo_2436688_0001-“${N}”.json, digidepo_2436688_0001-“${N}”.txt, digidepo_2436688_0001-“${N}”.xml\n\nOCR \u7d50\u679c\n\nviz_digidepo_2436688_0001-“${N}”.jpg\n\n\u53ef\u8996\u5316\u753b\u50cf(\u30aa\u30d7\u30b7\u30e7\u30f3)\n\n\n\n\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fpdf \u306e10\u30b3\u30de(20\u30da\u30fc\u30b8\u5206)\u3092Imagemagick \u3067jpeg \u753b\u50cf\u306b\u5909\u63db\u3057\u305f\u3082\u306e\u306b\u5bfe\u3057\u3066\u5b9f\u884c\u3057\u305f\u3068\u3053\u308d2\u520616\u79d2\u307b\u3069\u639b\u304b\u308a\u307e\u3057\u305f\uff0e1\u753b\u50cf\u3042\u305f\u308a13.6\u79d2\uff0c1\u30da\u30fc\u30b8\u3042\u305f\u308a6.8\u79d2\u307b\u3069\uff0e\u82f1\u8a9e\u65e5\u672c\u8a9e\u6df7\u3058\u308a\u3067\u3082\u7cbe\u5ea6\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\nOCR \u74b0\u5883\u306f\uff0cLENOVO ThinkPad L13 (G1), CPU: Intel® Core™ i7-10510U CPU @ 1.80GHz, RAM: DDR4 16GB, SSD: NVMe TOSHIBA KXG6AZNV512G \u306bDebian sid amd64 \u3092\u5c0e\u5165\u3057\u305f\u74b0\u5883\u3067\u3059\uff0e\n\n\n\u30b9\u30ad\u30e3\u30f3\u3057\u305f\u753b\u50cf\u30c7\u30fc\u30bf\u306f\u3053\u3093\u306a\u611f\u3058(1\u30b3\u30de2\u30da\u30fc\u30b8\u5206)\n\n\n\n$ file viz_digidepo_2436688_0001-0.jpg\nviz_digidepo_2436688_0001-0.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 2481x1761, components 3\n\n\n\nGNU time \u306e -f %M \u3067RAM \u306e\u5229\u7528\u91cf\u3092\u898b\u305f\u3068\u3053\u308d\u3053\u306e\u753b\u50cf1\u679a\u306e\u51e6\u7406\u3067600MB \u8fd1\u304f\uff0c10\u679a\u3067860MB \u7a0b\u3067\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\nNote\n\n\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u7d0d\u8c37\u53cb\u4e00 \u8a33\u8a3b\u300e\u9ed2\u732b\u300f,\u5065\u6587\u793e,1952. \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2436688\n\n\n\n\n\n\n\n\nLinux\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3067\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9\n\n\nNDLOCR-Lite GUI\u7248\u306b\u306f\u30ad\u30e3\u30d7\u30c1\u30e3\u30e2\u30fc\u30c9\u304c\u3042\u308a\u4fbf\u5229\u305d\u3046\u3067\u3059\u304c\uff0cNDLOCR-Lite \u3092\u8d77\u52d5\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\n\u540c\u3058\u3088\u3046\u306a\u3053\u3068\u3092\u4ee5\u524d\u304b\u3089 tesseract-ocr \u3067\u3084\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\u3053\u308c\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u306b\u767b\u9332\u3057\u305f\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3067\u30b9\u30af\u30ea\u30fc\u30f3\u30ad\u30e3\u30d7\u30c1\u30e3\u3068OCR \u3092\u884c\u3044\uff0c\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u7d50\u679c\u3092\u8fd4\u3059\u3082\u306e\u3067\u3057\u305f\uff0e\u3053\u308c\u3092NDLOCR-Lite \u3067\u52d5\u304f\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n$ cat ~/bin/ndlocr-lite.bash\n#!/bin/bash\n\nTMPDIR=$(mktemp -d)\nIMAGEFILE=\"$(mktemp).png\"\nimport png:\"${IMAGEFILE}\" (1)\n#sixelv \"${IMAGEFILE}\"\nconvert \"${IMAGEFILE}\" sixel: (2)\nndlocr-lite --sourceimg \"${IMAGEFILE}\" --output \"${TMPDIR}\" (3)\n\nif [ $? ]; then\n cat \"${TMPDIR}\"/*.txt | pee cat \"xsel -b\" (4)\n notify-send 'ocr📋(primary)' (5)\nelse\n notify-send 'ocr error'\n exit 1\nfi\n\nrm \"${IMAGEFILE}\" (6)\nrm -r \"${TMPDIR}\"\n\n\n\n\n\nImagemagick \u306eimport \u30b3\u30de\u30f3\u30c9\u3067\u4efb\u610f\u306e\u5834\u6240\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\n\n\n\u30c7\u30d0\u30c3\u30b0\u7528\u306b\u753b\u50cf\u51fa\u529b\n\n\nNDLOCR-Lite \u3067\u6587\u5b57\u8d77\u3053\u3057\n\n\n\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u683c\u7d0d\n\n\nnotify-send \u3067\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306b\u901a\u77e5\n\n\n\n\n\u5b9f\u884c\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\uff0e\u52d5\u753b\u5185\u306e\u30b9\u30e9\u30a4\u30c9\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u3066\u3044\u307e\u3059\uff0e\u89e3\u50cf\u5ea6\u304c\u4f4e\u3044\u3068\u3044\u307e\u3044\u3061\u3067\u3059\u304c\u89e3\u50cf\u5ea6\u304c\u9ad8\u3044\u3068\u3044\u3044\u611f\u3058\u3067\u3059\uff0etermial \u3067\u53e9\u304f\u3068\u30c7\u30d0\u30c3\u30b0\u7528\u306bSixel \u3067\u30ad\u30e3\u30d7\u30c1\u30e3\u753b\u50cf\u3082\u51fa\u3059\u3088\u3046\u306b\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\nNote\n\n\n\u753b\u50cf\u306e\u51fa\u5178\uff1a\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92026 Tokyo/Spring 2\u65e5\u76ee\u30e9\u30a4\u30c8\u30cb\u30f3\u30b0\u30c8\u30fc\u30af\u306e\u30aa\u30fc\u30d7\u30cb\u30f3\u30b0\u3088\u308a https://www.youtube.com/watch?v=xtb3ZFb6WvA\n\n\n\n\n\n\u3053\u306ebash script \u3092WindowManager \u306b\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3059\uff0e\u4ee5\u4e0b\u306fi3 wm \u3067 Super+Shift+o \u3067\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\uff0e\n\n\n~/.config/i3/config\n\n\n\n$ grep ocr ~/.config/i3/config\n#OCR https://gitlab.com/matoken/kagolug-2022.05/-/blob/main/slide/ocr.adoc\nbindsym $mod+Shift+o exec --no-startup-id ~/bin/ndlocr-lite.bash\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067\u4fbf\u5229\u306b\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u9060\u9694\u9001\u4fe1\u30b5\u30fc\u30d3\u30b9\u3067\u95b2\u89a7\u53ef\u80fd\u306a\u66f8\u7c4d\u306a\u3069\u3092\u5c0f\u3055\u306a\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306a\u3069\u306e\u7aef\u672b\u3067\u8aad\u3080\u306e\u306f\u3044\u307e\u3044\u3061\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u3053\u308c\u3067\u6587\u5b57\u8d77\u3053\u3057\u3057\u3066\u8aad\u3093\u3067\u307f\u308b\u306e\u3082\u3042\u308a\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0c\n\n\n\n\n\u74b0\u5883\n\n\n\n$ git log --pretty=oneline -1\n4f0748be4244a2e36d4dd43af05d6eebded3d56d (HEAD -> master, origin/master, origin/HEAD) Merge pull request #13 from mattn/fallback-line\n$ pipx list | grep uv\n package uv 0.10.7, installed using Python 3.13.3\n - uv\n - uvx\n$ dpkg-query -W python3 python3-venv\npython3 3.13.9-3\npython3-venv 3.13.9-3\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\n\n\ntoot\n\n\n\n\nmatoken :fox:: “NDL\u53e4\u5178\u7c4dOCR-Lite \u306b\u7d9a\u304dNDLOCR-Lite \u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-03-02T23:15:44+09:00", "date_modified": "2026-03-03T19:19:47+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "NDL", "NDLOCR-Lite", "OCR", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5284", "url": "https://matoken.org/blog/2026/02/25/changedetection-io/", "title": "ChangeDetection.io\u3092\u66f4\u65b0\u3057\u305f\u3089\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP\u3092\u5229\u7528\u3057\u305fURL\u304c\u30a8\u30e9\u30fc\u306b\u306a\u308b", "content_html": "
\n
\n

\n
\n

ChangeDetection.io \u3092\u66f4\u65b0\u3057\u305f\u3089\u30eb\u30fc\u30bf\u30fc\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

ChangeDetection.io \u306f\u306f\u3066\u306a\u30a2\u30f3\u30c6\u30ca\u306e\u3088\u3046\u306b\u767b\u9332\u30b5\u30a4\u30c8\u3092\u5b9a\u671f\u7684\u306b\u5de1\u56de\u3057\u3066\u66f4\u65b0\u3092\u6559\u3048\u3066\u304f\u308c\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9\u3067\u3059\uff0e
\n\u81ea\u5206\u306f\u30ed\u30fc\u30ab\u30ebPC \u306b\u5165\u308c\u3066\u52d5\u304b\u3057\u3066\u3044\u307e\u3059\uff0e

\n
\n\n
\n

#kagolug 2025.03 \u3067\u767a\u8868\u3057\u305f\u3068\u304d\u306e\u8cc7\u6599\u306f\u3053\u3061\u3089\uff0e

\n
\n\n
\n

\u4eca\u56de\u66f4\u65b0\u901a\u77e5\u304c\u6765\u3066\u3044\u305f\u306e\u3067\u6700\u65b0\u306b\u66f4\u65b0\u3057\u307e\u3057\u305f\uff0ev0.54.1 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ w3m -dump http://100.121.84.16:5000/ | grep ^v\nv0.54.1
\n
\n
\n
\n

\u3059\u308b\u3068router \u306e\u8a2d\u5b9a\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u30ed\u30b0\u304c\u53d6\u308c\u306a\u304f\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
 > DISABLED\n> Exception: Invalid URL 'DISABLED': No scheme supplied. Perhaps you meant https://DISABLED?\n[Create a link to share watch config with others]
\n
\n
\n
\n

\"changedetection.io

\n
\n
\n

Edit \u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u7de8\u96c6\u753b\u9762\u306b\u9077\u79fb\u3059\u308b\u3068\u554f\u984c\u306a\u3055\u305d\u3046\uff0e\u3067\u3082\u4e0a\u66f8\u304d\u4fdd\u5b58\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u6012\u3089\u308c\u307e\u3059\uff0e
\n\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u306fURL \u304c\u304a\u304b\u3057\u305d\u3046\u3067\u3059\u304c\uff0c\u3053\u306eURL \u306f\u666e\u901a\u306b\u958b\u3051\u308b\u3057\u305d\u3082\u305d\u3082\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u307e\u3067\u306f\u52d5\u3044\u3066\u3044\u305f\u3082\u306e\u3067\u3059\uff0e

\n
\n
\n
\n
* Watch protocol is not permitted or invalid URL format
\n
\n
\n
\n

\"changedetection.io

\n
\n
\n

\u306a\u3093\u304b\u30d0\u30b0\u8e0f\u3093\u3060?\u524d\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u4eca\u56de\u307e\u3067\u306ediff \u898b\u308b\u304b\u2026\u2026\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0cSSRF \u5bfe\u7b56\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u304c\u7121\u52b9\u306b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n\n
\n
\n\n
\n\n
\n

ALLOW_IANA_RESTRICTED_ADDRESSES=true \u3067\u9003\u3052\u3089\u308c\u308b\u3088\u3046\u306a\u306e\u3067\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n

docker-compose \u3067\u904b\u7528\u3057\u3066\u3044\u308b\u306e\u3067\uff0cdocker-compose.yml \u3092\u958b\u304d\uff0cchangedetection \u90e8\u5206\u306e environment: \u306b ALLOW_IANA_RESTRICTED_ADDRESSES=true \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\uff0e\u305d\u3057\u3066up \u3059\u308b\u3053\u3068\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u30a2\u30c9\u30ec\u30b9\u306eURL \u3082\u307e\u305f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ docker compose --file ~/src/changedetection.io/docker-compose.yml up -d
\n
\n
\n
\n

\u3053\u308c\u3053\u306e\u30a2\u30c9\u30ec\u30b9\u3060\u3051\u8a31\u53ef\u306e\u3088\u3046\u306a\u8a2d\u5b9a\u3082\u3067\u304d\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\u306d\uff0e

\n
\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
$ docker images ghcr.io/dgtlmoon/changedetection.io:latest\n                                                                                                                                                                   i Info     U  In Use\nIMAGE                                        ID             DISK USAGE   CONTENT SIZE   EXTRA\nghcr.io/dgtlmoon/changedetection.io:latest   cf4a98d2a980        889MB             0B    U\n$ w3m http://127.0.0.1:5000/ | grep ^v\nv0.54.1\n$ dpkg-query -W docker.io docker-compose-plugin\ndocker-compose-plugin   5.1.0-1~debian.12~bookworm\ndocker.io       26.1.5+dfsg1-4+b1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n

toot

\n
\n\n
\n
\n", "content_text": "ChangeDetection.io \u3092\u66f4\u65b0\u3057\u305f\u3089\u30eb\u30fc\u30bf\u30fc\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\n\n\n\nChangeDetection.io \u306f\u306f\u3066\u306a\u30a2\u30f3\u30c6\u30ca\u306e\u3088\u3046\u306b\u767b\u9332\u30b5\u30a4\u30c8\u3092\u5b9a\u671f\u7684\u306b\u5de1\u56de\u3057\u3066\u66f4\u65b0\u3092\u6559\u3048\u3066\u304f\u308c\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9\u3067\u3059\uff0e\n\u81ea\u5206\u306f\u30ed\u30fc\u30ab\u30ebPC \u306b\u5165\u308c\u3066\u52d5\u304b\u3057\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\ndgtlmoon/changedetection.io: Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring\u2014all for free or enjoy our SaaS plan!\n\n\n\n\n#kagolug 2025.03 \u3067\u767a\u8868\u3057\u305f\u3068\u304d\u306e\u8cc7\u6599\u306f\u3053\u3061\u3089\uff0e\n\n\n\n\nChangeDetection.io\u3067\u30a6\u30a7\u30d6\u30da\u30fc\u30b8\u3092\u5b9a\u671f\u30c1\u30a7\u30c3\u30af\n\n\n\n\n\u4eca\u56de\u66f4\u65b0\u901a\u77e5\u304c\u6765\u3066\u3044\u305f\u306e\u3067\u6700\u65b0\u306b\u66f4\u65b0\u3057\u307e\u3057\u305f\uff0ev0.54.1 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ w3m -dump http://100.121.84.16:5000/ | grep ^v\nv0.54.1\n\n\n\n\u3059\u308b\u3068router \u306e\u8a2d\u5b9a\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u30ed\u30b0\u304c\u53d6\u308c\u306a\u304f\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n > DISABLED\n> Exception: Invalid URL 'DISABLED': No scheme supplied. Perhaps you meant https://DISABLED?\n[Create a link to share watch config with others]\n\n\n\n\n\n\nEdit \u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u7de8\u96c6\u753b\u9762\u306b\u9077\u79fb\u3059\u308b\u3068\u554f\u984c\u306a\u3055\u305d\u3046\uff0e\u3067\u3082\u4e0a\u66f8\u304d\u4fdd\u5b58\u3057\u3088\u3046\u3068\u3057\u305f\u3089\u6012\u3089\u308c\u307e\u3059\uff0e\n\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u306fURL \u304c\u304a\u304b\u3057\u305d\u3046\u3067\u3059\u304c\uff0c\u3053\u306eURL \u306f\u666e\u901a\u306b\u958b\u3051\u308b\u3057\u305d\u3082\u305d\u3082\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u307e\u3067\u306f\u52d5\u3044\u3066\u3044\u305f\u3082\u306e\u3067\u3059\uff0e\n\n\n\n* Watch protocol is not permitted or invalid URL format\n\n\n\n\n\n\n\u306a\u3093\u304b\u30d0\u30b0\u8e0f\u3093\u3060?\u524d\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u4eca\u56de\u307e\u3067\u306ediff \u898b\u308b\u304b\u2026\u2026\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0cSSRF \u5bfe\u7b56\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u304c\u7121\u52b9\u306b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\n\nCVE-2026-27696 – Server-Side Request Forgery (SSRF) via Watch URLs, set env var ALLOW_IANA_RESTRICTED_ADDRESSES to true to access IANA reserved URLs such as http://169.254.169.254, http://10.0.0.1/, http://127.0.0.1/, etc.\n\n\n\n\n\n— Release 0.54.1 \u00b7 dgtlmoon/changedetection.io\n\n\n\n\u5dee\u5206\u3092\u898b\u308b\u3068IPv6 \u306eloopback \u3084local \u3082\u5bfe\u8c61\u306e\u3088\u3046\u3067\u3059\uff0e\n\n\nALLOW_IANA_RESTRICTED_ADDRESSES=true \u3067\u9003\u3052\u3089\u308c\u308b\u3088\u3046\u306a\u306e\u3067\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\ndocker-compose \u3067\u904b\u7528\u3057\u3066\u3044\u308b\u306e\u3067\uff0cdocker-compose.yml \u3092\u958b\u304d\uff0cchangedetection \u90e8\u5206\u306e environment: \u306b ALLOW_IANA_RESTRICTED_ADDRESSES=true \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\uff0e\u305d\u3057\u3066up \u3059\u308b\u3053\u3068\u3067\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8IP \u30a2\u30c9\u30ec\u30b9\u306eURL \u3082\u307e\u305f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ docker compose --file ~/src/changedetection.io/docker-compose.yml up -d\n\n\n\n\u3053\u308c\u3053\u306e\u30a2\u30c9\u30ec\u30b9\u3060\u3051\u8a31\u53ef\u306e\u3088\u3046\u306a\u8a2d\u5b9a\u3082\u3067\u304d\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\u306d\uff0e\n\n\n\n\n\u74b0\u5883\n\n\n$ docker images ghcr.io/dgtlmoon/changedetection.io:latest\n i Info U In Use\nIMAGE ID DISK USAGE CONTENT SIZE EXTRA\nghcr.io/dgtlmoon/changedetection.io:latest cf4a98d2a980 889MB 0B U\n$ w3m http://127.0.0.1:5000/ | grep ^v\nv0.54.1\n$ dpkg-query -W docker.io docker-compose-plugin\ndocker-compose-plugin 5.1.0-1~debian.12~bookworm\ndocker.io 26.1.5+dfsg1-4+b1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\n\ntoot\n\n\n\nmatoken :fox:: “ChangeDetection.io \u3092\u66f4\u65b0 v0.54.1\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-02-25T07:19:29+09:00", "date_modified": "2026-02-25T07:19:31+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ChangeDetection.io", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5258", "url": "https://matoken.org/blog/2026/02/20/yt-dlp_subtitle_429error/", "title": "yt-dlp\u3067YouTube\u306e\u5b57\u5e55\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557(HTTP Error 429: Too Many Requests)", "content_html": "
\n
\n

\n
\n

Tokyo Linux Users Group \u306eTechnical Meeting \u306e\u30d3\u30c7\u30aa\u304cYouTube \u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u3066\u3044\u308b\u3068\u5148\u65e5\u306e #kagolug \u3067\u6559\u3048\u3066\u3082\u3089\u3063\u305f\u306e\u3067\u89b3\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3057\u305f\uff0e
\n\u3067\u3082TLUG \u306f\u82f1\u8a9e\u3067\u3059\uff0e\u4ee5\u524d\u306fWisper.cpp \u3067\u6587\u5b57\u8d77\u3053\u3057 & \u6a5f\u68b0\u7ffb\u8a33\u3067\u5b57\u5e55\u3092\u4f5c\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u6700\u8fd1\u306eYouTube \u306e\u6587\u5b57\u8d77\u3053\u3057\u306f\u5927\u5206\u826f\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u305d\u308c\u3092\u4f7f\u304a\u3046\u3068\u30ed\u30fc\u30ab\u30eb\u306b\u30d3\u30c7\u30aa\u3068\u5b57\u5e55\u3092dl \u3057\u3088\u3046\u3068\u3057\u305f\u3068\u3053\u308d\u5b57\u5e55\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e

\n
\n\n

\n
\n

\u9069\u5f53\u306a\u89e3\u50cf\u5ea6\u306e\u30d3\u30c7\u30aa\u3068\u30aa\u30fc\u30c7\u30a3\u30aa\uff0c\u305d\u308c\u3068\u82f1\u8a9e\u306e\u6587\u5b57\u8d77\u3053\u3057\u5b57\u5e55\u3068\uff0c\u305d\u308c\u3092\u65e5\u672c\u8a9e\u306b\u7ffb\u8a33\u3057\u305f\u3082\u306e\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ yt-dlp -f 244+251 yYgF87nqyKI --write-auto-subs --sub-langs ja,en_orig\n[youtube] Extracting URL: yYgF87nqyKI\n[youtube] yYgF87nqyKI: Downloading webpage\n[youtube] yYgF87nqyKI: Downloading android vr player API JSON\n[youtube] yYgF87nqyKI: Downloading web safari player API JSON\n[youtube] yYgF87nqyKI: Downloading player 4c5cf06a-tv\n[youtube] [jsc:deno] Solving JS challenges using deno\n[youtube] yYgF87nqyKI: Downloading m3u8 information\n[info] yYgF87nqyKI: Downloading subtitles: ja\n[info] yYgF87nqyKI: Downloading 1 format(s): 244+251\n[info] Writing video subtitles to: CDImage - Cam [yYgF87nqyKI].ja.vtt\nWARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see  https://github.com/yt-dlp/yt-dlp#impersonation  for information on installing the required dependencies\nERROR: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests
\n
\n
\n
\n

*Too Many Requests* \u3068\u304b\u8a00\u308f\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u4eca\u65e5\u521d\u3081\u3066\u5b9f\u884c\u3057\u305f\u306e\u306b\u306a\u3093\u3067?

\n
\n
\n

--verbose \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u307f\u307e\u3057\u305f\u304c\u3088\u304f\u308f\u304b\u308a\u307e\u305b\u3093

\n
\n
\n
\n
[info] Writing video subtitles to: CDImage - Cam [yYgF87nqyKI].ja.vtt\n[debug] Invoking http downloader on \"https://www.youtube.com/api/timedtext?v=yYgF87nqyKI&ei=M4WXaZnECfax2roP_YqAqAc&caps=asr&opi=112496729&xoaf=5&xowf=1&xospf=1&hl=en&ip=0.0.0.0&ipbits=0&expire=1771562915&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cxoaf&signature=1B0AC6AA8FB20AFE9B45B2F66DBB1000F04DE626.909918AF43ACD2AFD3E0C2C61E53A3C72E49AB6C&key=yt8&kind=asr&lang=en&fmt=vtt&tlang=ja\"\nWARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see  https://github.com/yt-dlp/yt-dlp#impersonation  for information on installing the required dependencies\nERROR: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests\nTraceback (most recent call last):\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4449, in _write_subtitles\n    self.dl(sub_filename, sub_copy, subtitle=True)\n    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3285, in dl\n    return fd.download(name, new_info, subtitle)\n           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/common.py\", line 480, in download\n    ret = self.real_download(filename, info_dict)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/http.py\", line 362, in real_download\n    establish_connection()\n    ~~~~~~~~~~~~~~~~~~~~^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/http.py\", line 119, in establish_connection\n    ctx.data = self.ydl.urlopen(request)\n               ~~~~~~~~~~~~~~~~^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4260, in urlopen\n    return self._request_director.send(req)\n           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/common.py\", line 117, in send\n    response = handler.send(request)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/_helper.py\", line 194, in wrapper\n    return func(self, *args, **kwargs)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/common.py\", line 359, in send\n    return self._send(request)\n           ~~~~~~~~~~^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/_requests.py\", line 361, in _send\n    raise HTTPError(res, redirect_loop=max_redirects_exceeded)\nyt_dlp.networking.exceptions.HTTPError: HTTP Error 429: Too Many Requests\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1698, in wrapper\n    return func(self, *args, **kwargs)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1854, in __extract_info\n    return self.process_ie_result(ie_result, download, extra_info)\n           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1913, in process_ie_result\n    ie_result = self.process_video_result(ie_result, download=download)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3096, in process_video_result\n    self.process_info(new_info)\n    ~~~~~~~~~~~~~~~~~^^^^^^^^^^\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 189, in wrapper\n    return func(self, *args, **kwargs)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3353, in process_info\n    sub_files = self._write_subtitles(info_dict, temp_filename)\n  File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4457, in _write_subtitles\n    raise DownloadError(msg)\nyt_dlp.utils.DownloadError: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests
\n
\n
\n
\n

ISSUES \u3092\u63a2\u3059\u3068\u65e2\u77e5\u306e\u554f\u984c\u306e\u3088\u3046\u3067\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u304c\u3042\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
\n
\n

[FreeTubeApp/FreeTube#7484](https://github.com/FreeTubeApp/FreeTube/pull/7484)

\n
\n
\n
\n
\n

FreeTube is adding a PO token to their subtitles requests. But FreeTube doesn’t use auto-translated subs AFAICT.
\n# Manual subtitles and original language automatic captions are not affected by this HTTP Error 429 issue.

\n
\n
\n

Only subtitles/captions that have been automatically translated into another language are affected. So you may be able to get the subs you want without a problem if you are precise with your --sub-langs and --write-subs vs --write-auto-subs arguments.

\n
\n
\n

But if you want translated auto subs,
\n# there are 2 known ways of avoiding this HTTP Error 429:

\n
\n
\n
    \n
  • \n

    Pass fresh cookies to yt-dlp from a browser session where you’ve very recently loaded auto-translated subs

    \n
  • \n
  • \n

    Wait ~60 seconds after extraction and before downloading the auto subs, e.g. --sleep-subtitles 60

    \n
  • \n
\n
\n
\n

(Either of these 2 methods will work individually, you do not need to combine them)

\n
\n
\n\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a --sleep-subtitles 60 \u3092\u4ed8\u3051\u3066\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u5b57\u5e55\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u6642\u306bsleep \u3057\u3066\u6012\u3089\u308c\u305a\u306b\u5b57\u5e55\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ yt-dlp -f 244+251 yYgF87nqyKI --write-auto-subs --sub-langs ja,en_orig --sleep-subtitles 60
\n
\n
\n
\n

\u305d\u3057\u3066mpv \u7b49\u3067\u3053\u3093\u306a\u611f\u3058\u3067\u5b57\u5e55\u30922\u3064\u8868\u793a\u3057\u306a\u304c\u3089\u8996\u8074\u53ef\u80fd\u306b :)

\n
\n
\n
\n
$ mpv --sub-files='CDImage - Cam [yYgF87nqyKI].en.vtt:CDImage - Cam [yYgF87nqyKI].ja.vtt' --secondary-sid=2 'CDImage - Cam [yYgF87nqyKI].webm'
\n
\n
\n
\n

\"mpv

\n
\n
\n
\u74b0\u5883
\n
\n
$ yt-dlp --version\n2026.02.04\n$ deno --version\ndeno 2.6.8 (stable, release, x86_64-unknown-linux-gnu)\nv8 14.5.201.2-rusty\ntypescript 5.9.2\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n\n
\n
\n", "content_text": "Tokyo Linux Users Group \u306eTechnical Meeting \u306e\u30d3\u30c7\u30aa\u304cYouTube \u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u3066\u3044\u308b\u3068\u5148\u65e5\u306e #kagolug \u3067\u6559\u3048\u3066\u3082\u3089\u3063\u305f\u306e\u3067\u89b3\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3057\u305f\uff0e\n\u3067\u3082TLUG \u306f\u82f1\u8a9e\u3067\u3059\uff0e\u4ee5\u524d\u306fWisper.cpp \u3067\u6587\u5b57\u8d77\u3053\u3057 & \u6a5f\u68b0\u7ffb\u8a33\u3067\u5b57\u5e55\u3092\u4f5c\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u6700\u8fd1\u306eYouTube \u306e\u6587\u5b57\u8d77\u3053\u3057\u306f\u5927\u5206\u826f\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u305d\u308c\u3092\u4f7f\u304a\u3046\u3068\u30ed\u30fc\u30ab\u30eb\u306b\u30d3\u30c7\u30aa\u3068\u5b57\u5e55\u3092dl \u3057\u3088\u3046\u3068\u3057\u305f\u3068\u3053\u308d\u5b57\u5e55\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\nTokyo Linux Users Group\n\n\nhttps://www.youtube.com/@TokyoLinuxUsersGroup\n\n\n\n\n\n\u9069\u5f53\u306a\u89e3\u50cf\u5ea6\u306e\u30d3\u30c7\u30aa\u3068\u30aa\u30fc\u30c7\u30a3\u30aa\uff0c\u305d\u308c\u3068\u82f1\u8a9e\u306e\u6587\u5b57\u8d77\u3053\u3057\u5b57\u5e55\u3068\uff0c\u305d\u308c\u3092\u65e5\u672c\u8a9e\u306b\u7ffb\u8a33\u3057\u305f\u3082\u306e\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\uff0e\n\n\n\n$ yt-dlp -f 244+251 yYgF87nqyKI --write-auto-subs --sub-langs ja,en_orig\n[youtube] Extracting URL: yYgF87nqyKI\n[youtube] yYgF87nqyKI: Downloading webpage\n[youtube] yYgF87nqyKI: Downloading android vr player API JSON\n[youtube] yYgF87nqyKI: Downloading web safari player API JSON\n[youtube] yYgF87nqyKI: Downloading player 4c5cf06a-tv\n[youtube] [jsc:deno] Solving JS challenges using deno\n[youtube] yYgF87nqyKI: Downloading m3u8 information\n[info] yYgF87nqyKI: Downloading subtitles: ja\n[info] yYgF87nqyKI: Downloading 1 format(s): 244+251\n[info] Writing video subtitles to: CDImage - Cam [yYgF87nqyKI].ja.vtt\nWARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies\nERROR: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests\n\n\n\n*Too Many Requests* \u3068\u304b\u8a00\u308f\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u4eca\u65e5\u521d\u3081\u3066\u5b9f\u884c\u3057\u305f\u306e\u306b\u306a\u3093\u3067?\n\n\n--verbose \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u307f\u307e\u3057\u305f\u304c\u3088\u304f\u308f\u304b\u308a\u307e\u305b\u3093\n\n\n\n[info] Writing video subtitles to: CDImage - Cam [yYgF87nqyKI].ja.vtt\n[debug] Invoking http downloader on \"https://www.youtube.com/api/timedtext?v=yYgF87nqyKI&ei=M4WXaZnECfax2roP_YqAqAc&caps=asr&opi=112496729&xoaf=5&xowf=1&xospf=1&hl=en&ip=0.0.0.0&ipbits=0&expire=1771562915&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cxoaf&signature=1B0AC6AA8FB20AFE9B45B2F66DBB1000F04DE626.909918AF43ACD2AFD3E0C2C61E53A3C72E49AB6C&key=yt8&kind=asr&lang=en&fmt=vtt&tlang=ja\"\nWARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies\nERROR: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests\nTraceback (most recent call last):\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4449, in _write_subtitles\n self.dl(sub_filename, sub_copy, subtitle=True)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3285, in dl\n return fd.download(name, new_info, subtitle)\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/common.py\", line 480, in download\n ret = self.real_download(filename, info_dict)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/http.py\", line 362, in real_download\n establish_connection()\n ~~~~~~~~~~~~~~~~~~~~^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/downloader/http.py\", line 119, in establish_connection\n ctx.data = self.ydl.urlopen(request)\n ~~~~~~~~~~~~~~~~^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4260, in urlopen\n return self._request_director.send(req)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/common.py\", line 117, in send\n response = handler.send(request)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/_helper.py\", line 194, in wrapper\n return func(self, *args, **kwargs)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/common.py\", line 359, in send\n return self._send(request)\n ~~~~~~~~~~^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/networking/_requests.py\", line 361, in _send\n raise HTTPError(res, redirect_loop=max_redirects_exceeded)\nyt_dlp.networking.exceptions.HTTPError: HTTP Error 429: Too Many Requests\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1698, in wrapper\n return func(self, *args, **kwargs)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1854, in __extract_info\n return self.process_ie_result(ie_result, download, extra_info)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 1913, in process_ie_result\n ie_result = self.process_video_result(ie_result, download=download)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3096, in process_video_result\n self.process_info(new_info)\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 189, in wrapper\n return func(self, *args, **kwargs)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 3353, in process_info\n sub_files = self._write_subtitles(info_dict, temp_filename)\n File \"/home/matoken/bin/yt-dlp/yt_dlp/YoutubeDL.py\", line 4457, in _write_subtitles\n raise DownloadError(msg)\nyt_dlp.utils.DownloadError: Unable to download video subtitles for 'ja': HTTP Error 429: Too Many Requests\n\n\n\nISSUES \u3092\u63a2\u3059\u3068\u65e2\u77e5\u306e\u554f\u984c\u306e\u3088\u3046\u3067\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u304c\u3042\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n[FreeTubeApp/FreeTube#7484](https://github.com/FreeTubeApp/FreeTube/pull/7484)\n\n\n\n\nFreeTube is adding a PO token to their subtitles requests. But FreeTube doesn’t use auto-translated subs AFAICT.\n# Manual subtitles and original language automatic captions are not affected by this HTTP Error 429 issue.\n\n\nOnly subtitles/captions that have been automatically translated into another language are affected. So you may be able to get the subs you want without a problem if you are precise with your --sub-langs and --write-subs vs --write-auto-subs arguments.\n\n\nBut if you want translated auto subs,\n# there are 2 known ways of avoiding this HTTP Error 429:\n\n\n\n\nPass fresh cookies to yt-dlp from a browser session where you’ve very recently loaded auto-translated subs\n\n\nWait ~60 seconds after extraction and before downloading the auto subs, e.g. --sleep-subtitles 60\n\n\n\n\n(Either of these 2 methods will work individually, you do not need to combine them)\n\n\n\n— [YouTube] Unable to download video subtitles: HTTP Error 429: Too Many Requests \u00b7 Issue #13831 \u00b7 yt-dlp/yt-dlp\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a --sleep-subtitles 60 \u3092\u4ed8\u3051\u3066\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u5b57\u5e55\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u6642\u306bsleep \u3057\u3066\u6012\u3089\u308c\u305a\u306b\u5b57\u5e55\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\uff0e\n\n\n\n$ yt-dlp -f 244+251 yYgF87nqyKI --write-auto-subs --sub-langs ja,en_orig --sleep-subtitles 60\n\n\n\n\u305d\u3057\u3066mpv \u7b49\u3067\u3053\u3093\u306a\u611f\u3058\u3067\u5b57\u5e55\u30922\u3064\u8868\u793a\u3057\u306a\u304c\u3089\u8996\u8074\u53ef\u80fd\u306b :)\n\n\n\n$ mpv --sub-files='CDImage - Cam [yYgF87nqyKI].en.vtt:CDImage - Cam [yYgF87nqyKI].ja.vtt' --secondary-sid=2 'CDImage - Cam [yYgF87nqyKI].webm'\n\n\n\n\n\n\n\u74b0\u5883\n\n$ yt-dlp --version\n2026.02.04\n$ deno --version\ndeno 2.6.8 (stable, release, x86_64-unknown-linux-gnu)\nv8 14.5.201.2-rusty\ntypescript 5.9.2\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\ntoot\n\n\nmatoken :fox:: “#tlug \u306e\u30d3\u30c7\u30aa\u304cYouTube \u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u3066\u3044\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-02-20T07:17:00+09:00", "date_modified": "2026-02-20T07:17:01+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "mpv", "subtitle", "yt-dlp", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5251", "url": "https://matoken.org/blog/2026/02/19/snac-static/", "title": "snac\u306e\u30e6\u30fc\u30b6\u30fc\u3054\u3068\u306estatic\u30c7\u30a3\u30ec\u30af\u30c8\u30ea", "content_html": "
\n
\n
\n

\"snac

\n
\n
\n

snac\u306e\u305f\u3081\u306e\u9759\u7684\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092apache2 httpd \u3067\u8a2d\u5b9a\u3057\u3066\u30ab\u30b9\u30bf\u30e0\u7d75\u6587\u5b57\u306e\u8a2d\u7f6e\u5834\u6240\u306b\u5229\u7528\u3057\u3066\u3044\u307e\u3059\uff0e

\n
\n\n
\n

\u5b9f\u306f\u8a2d\u5b9a\u305b\u305a\u3068\u3082\u30e6\u30fc\u30b6\u3054\u3068\u306b\u9759\u7684\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3042\u308b\u306e\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u304d\u3063\u304b\u3051\u306f\u3053\u3061\u3089\uff0e

\n
\n
\n
\n
\n

Use https://snac.rohrmoser.name/social/marcus/s/readme.txt (i.e. add a /s/ between your account id and the file).

\n
\n
\n\n
\n
\n

${SNAC-URL}/${USER}/s/ \u306e\u4e0b\u304c\u4f7f\u3048\u308b\u3088\u3046\u3067\u3059\uff0e
\n\u5b9f\u969b\u306b\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
\n

$ cd ${SNAC-DATA}/user/${USER}/static <.>
\n$ echo test > test <.>
\n$ w3m -dump_extra https://snac.matoken.org/matoken/s/test | grep ^HTTP/ -A99 <.>
\nHTTP/1.1 200 OK
\nDate: Wed, 18 Feb 2026 20:50:37 GMT
\nServer: Apache/2.4.66 (Debian)
\ncontent-type: application/octet-stream
\nx-creator: snac/2.90
\netag: W/”snac-1771444525″
\naccess-control-allow-origin: *
\naccess-control-allow-headers: *
\naccess-control-expose-headers: Link
\nContent-Security-Policy: script-src ;
\ncontent-length: 5
\nConnection: close

\n
\n
\n

test

\n
\n
\n
\n
\n
    \n
  1. \n

    \u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306e static \u306b\u79fb\u52d5

    \n
  2. \n
  3. \n

    \u30c6\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210

    \n
  4. \n
  5. \n

    \u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306e s \u4ee5\u4e0b\u306e\u8a72\u5f53\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d

    \n
  6. \n
\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067snac server \u306e ${SNAC-DATA}/user/${USER}/static \u4ee5\u4e0b\u306b\u7f6e\u3044\u305f\u30d5\u30a1\u30a4\u30eb\u304c ${SNAC-URL}/${USER}/s/ \u4ee5\u4e0b\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e
\ntheme \u3067\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5229\u7528\u3057\u3066\u3044\u307e\u3057\u305f\u304c\uff0ctheme \u4ee5\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u3082ok \u306a\u3093\u3067\u3059\u306d\uff0e

\n
\n\n
\n
\u74b0\u5883
\n
\n
$ sudo -u snac ~snac/snac2/snac state ~snac/snac-data\nserver: snac.matoken.org (snac/2.90)\nuptime: 1:11:46:03\njob fifo size (cur): 0\njob fifo size (peak): 11\nthread #0 state: waiting\nthread #1 state: waiting\nthread #2 state: waiting\nthread #3 state: waiting\n$ lsb_release -dr\nNo LSB modules are available.\nDescription:    Debian GNU/Linux 12 (bookworm)\nRelease:        12\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "snac\u306e\u305f\u3081\u306e\u9759\u7684\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092apache2 httpd \u3067\u8a2d\u5b9a\u3057\u3066\u30ab\u30b9\u30bf\u30e0\u7d75\u6587\u5b57\u306e\u8a2d\u7f6e\u5834\u6240\u306b\u5229\u7528\u3057\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\nsnac \u3067\u30ab\u30b9\u30bf\u30e0\u7d75\u6587\u5b57\u3092\u5229\u7528 \u2013 matoken’s blog\n\n\n\n\n\u5b9f\u306f\u8a2d\u5b9a\u305b\u305a\u3068\u3082\u30e6\u30fc\u30b6\u3054\u3068\u306b\u9759\u7684\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3042\u308b\u306e\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff0e\n\n\n\n\u304d\u3063\u304b\u3051\u306f\u3053\u3061\u3089\uff0e\n\n\n\n\nUse https://snac.rohrmoser.name/social/marcus/s/readme.txt (i.e. add a /s/ between your account id and the file).\n\n\n\n— https://comam.es/snac/grunfink/p/1771335084.798855\n\n\n\n${SNAC-URL}/${USER}/s/ \u306e\u4e0b\u304c\u4f7f\u3048\u308b\u3088\u3046\u3067\u3059\uff0e\n\u5b9f\u969b\u306b\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n\n$ cd ${SNAC-DATA}/user/${USER}/static <.>\n$ echo test > test <.>\n$ w3m -dump_extra https://snac.matoken.org/matoken/s/test | grep ^HTTP/ -A99 <.>\nHTTP/1.1 200 OK\nDate: Wed, 18 Feb 2026 20:50:37 GMT\nServer: Apache/2.4.66 (Debian)\ncontent-type: application/octet-stream\nx-creator: snac/2.90\netag: W/”snac-1771444525″\naccess-control-allow-origin: *\naccess-control-allow-headers: *\naccess-control-expose-headers: Link\nContent-Security-Policy: script-src ;\ncontent-length: 5\nConnection: close\n\n\ntest\n\n\n\n\n\n\n\u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306e static \u306b\u79fb\u52d5\n\n\n\u30c6\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\n\n\n\u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306e s \u4ee5\u4e0b\u306e\u8a72\u5f53\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\n\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067snac server \u306e ${SNAC-DATA}/user/${USER}/static \u4ee5\u4e0b\u306b\u7f6e\u3044\u305f\u30d5\u30a1\u30a4\u30eb\u304c ${SNAC-URL}/${USER}/s/ \u4ee5\u4e0b\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\ntheme \u3067\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5229\u7528\u3057\u3066\u3044\u307e\u3057\u305f\u304c\uff0ctheme \u4ee5\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u3082ok \u306a\u3093\u3067\u3059\u306d\uff0e\n\n\n\n\nsnac\u306etheme\u3092\u8a2d\u5b9a \u2013 matoken’s blog\n\n\n\n\n\u74b0\u5883\n\n$ sudo -u snac ~snac/snac2/snac state ~snac/snac-data\nserver: snac.matoken.org (snac/2.90)\nuptime: 1:11:46:03\njob fifo size (cur): 0\njob fifo size (peak): 11\nthread #0 state: waiting\nthread #1 state: waiting\nthread #2 state: waiting\nthread #3 state: waiting\n$ lsb_release -dr\nNo LSB modules are available.\nDescription: Debian GNU/Linux 12 (bookworm)\nRelease: 12\n$ arch\nx86_64", "date_published": "2026-02-19T05:51:26+09:00", "date_modified": "2026-02-19T05:51:26+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "ActivityPub", "snac", "bookworm", "Debian", "Linux" ] }, { "id": "https://matoken.org/blog/?p=5235", "url": "https://matoken.org/blog/2026/02/16/firefox-lock-tab/", "title": "Firefox\u306e\u6307\u5b9a\u30bf\u30d6\u3092\u4fdd\u8b77(\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u96e2\u8131\u9632\u6b62)", "content_html": "
\n
\n
\n

\"2683779

\n
\n
\n

\u3053\u306e\u571f\u65e5\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3057\u3066\u3044\u307e\u3057\u305f\uff0e\uff11\u3064\u306fzoom.us, \u3082\u30461\u3064\u306fGalene \u3067\u3057\u305f\uff0e
\n\u3069\u3061\u3089\u3082\u53c2\u52a0\u4e2d\u306b\u64cd\u4f5c\u30df\u30b9\u3067\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u30bf\u30d6\u304b\u3089\u79fb\u52d5\u3057\u3066\u3057\u307e\u3044\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u304b\u3089\u96e2\u8131\u3057\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e
\n\u30bf\u30d6\u3092\u62e1\u5f35\u6a5f\u80fd\u3067\u4fdd\u8b77\u3067\u304d\u306a\u3044\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u306f\u3058\u3081\u8a66\u3057\u305f\u306e\u306f\u3053\u3061\u3089\u306e\u300cTabloc\u300d\uff0etext chat \u306e\u30ea\u30f3\u30af\u3092\u62bc\u3059\u3068\u65b0\u3057\u3044\u30bf\u30d6\u3067\u958b\u304b\u308c\u308b\u3057\u3053\u308c\u3067\u3044\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u53f3\u4e0a\u306e\u30e1\u30cb\u30e5\u30fc\u306e\u5c65\u6b74\u304b\u3089\u5fa9\u5143\u3057\u305f\u3089\u99c4\u76ee\u3067\u3059\uff0e

\n
\n\n
\n

\u6b21\u306b\u8a66\u3057\u305f\u306e\u306f\u4ee5\u4e0b\u306e\u300c\u30bf\u30d6\u306e\u30da\u30fc\u30b8\u3092\u30ed\u30c3\u30af\u3059\u308b\u300d\uff0e\u3053\u3061\u3089\u3060\u3068\u5c65\u6b74\u3092\u5fa9\u5143\u3057\u3088\u3046\u3068\u3057\u3042\u305f\u308a\u30bf\u30d6\u3092\u4e2d\u30af\u30ea\u30c3\u30af\u3067\u9589\u3058\u3088\u3046\u3068\u3059\u308b\u3068\u300c\u3053\u306e\u30da\u30fc\u30b8\u304b\u3089\u79fb\u52d5\u3057\u307e\u3059\u304b\uff1f\u5165\u529b\u3057\u305f\u60c5\u5831\u306f\u4fdd\u5b58\u3055\u308c\u307e\u305b\u3093\u3002\u300d\u3068\u3044\u3046\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u3059\u3050\u306b\u306f\u9589\u3058\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n

\"fx
\n\"fx

\n
\n
\n

\u4fdd\u8b77\u3057\u305f\u30bf\u30d6\u306b\u306f\"\ud83d\udd12\"\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e

\n
\n\n
\n
\u74b0\u5883
\n
\n
\u30bf\u30d6\u306e\u30da\u30fc\u30b8\u3092\u30ed\u30c3\u30af\u3059\u308b: \u30d0\u30fc\u30b8\u30e7\u30f3 1.2025.1227.0\n$ dpkg-query -W firefox\nfirefox 147.0.3-1+b1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u3053\u306e\u571f\u65e5\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3057\u3066\u3044\u307e\u3057\u305f\uff0e\uff11\u3064\u306fzoom.us, \u3082\u30461\u3064\u306fGalene \u3067\u3057\u305f\uff0e\n\u3069\u3061\u3089\u3082\u53c2\u52a0\u4e2d\u306b\u64cd\u4f5c\u30df\u30b9\u3067\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u30bf\u30d6\u304b\u3089\u79fb\u52d5\u3057\u3066\u3057\u307e\u3044\u30d3\u30c7\u30aa\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u304b\u3089\u96e2\u8131\u3057\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\n\u30bf\u30d6\u3092\u62e1\u5f35\u6a5f\u80fd\u3067\u4fdd\u8b77\u3067\u304d\u306a\u3044\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\u306f\u3058\u3081\u8a66\u3057\u305f\u306e\u306f\u3053\u3061\u3089\u306e\u300cTabloc\u300d\uff0etext chat \u306e\u30ea\u30f3\u30af\u3092\u62bc\u3059\u3068\u65b0\u3057\u3044\u30bf\u30d6\u3067\u958b\u304b\u308c\u308b\u3057\u3053\u308c\u3067\u3044\u3044\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\uff0c\u53f3\u4e0a\u306e\u30e1\u30cb\u30e5\u30fc\u306e\u5c65\u6b74\u304b\u3089\u5fa9\u5143\u3057\u305f\u3089\u99c4\u76ee\u3067\u3059\uff0e\n\n\n\n\nTabloc \u2013 Firefox (ja) \u5411\u3051\u62e1\u5f35\u6a5f\u80fd\u3092\u5165\u624b\n\n\n\n\n\u6b21\u306b\u8a66\u3057\u305f\u306e\u306f\u4ee5\u4e0b\u306e\u300c\u30bf\u30d6\u306e\u30da\u30fc\u30b8\u3092\u30ed\u30c3\u30af\u3059\u308b\u300d\uff0e\u3053\u3061\u3089\u3060\u3068\u5c65\u6b74\u3092\u5fa9\u5143\u3057\u3088\u3046\u3068\u3057\u3042\u305f\u308a\u30bf\u30d6\u3092\u4e2d\u30af\u30ea\u30c3\u30af\u3067\u9589\u3058\u3088\u3046\u3068\u3059\u308b\u3068\u300c\u3053\u306e\u30da\u30fc\u30b8\u304b\u3089\u79fb\u52d5\u3057\u307e\u3059\u304b\uff1f\u5165\u529b\u3057\u305f\u60c5\u5831\u306f\u4fdd\u5b58\u3055\u308c\u307e\u305b\u3093\u3002\u300d\u3068\u3044\u3046\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u3059\u3050\u306b\u306f\u9589\u3058\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n\u4fdd\u8b77\u3057\u305f\u30bf\u30d6\u306b\u306f\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff0e\n\n\n\n\n\u30bf\u30d6\u306e\u30da\u30fc\u30b8\u3092\u30ed\u30c3\u30af\u3059\u308b \u2013 Firefox (ja) \u5411\u3051\u62e1\u5f35\u6a5f\u80fd\u3092\u5165\u624b\n\n\n\n\n\u74b0\u5883\n\n\u30bf\u30d6\u306e\u30da\u30fc\u30b8\u3092\u30ed\u30c3\u30af\u3059\u308b: \u30d0\u30fc\u30b8\u30e7\u30f3 1.2025.1227.0\n$ dpkg-query -W firefox\nfirefox 147.0.3-1+b1\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2026-02-16T19:03:27+09:00", "date_modified": "2026-02-16T23:15:14+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "extension", "Firefox", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5226", "url": "https://matoken.org/blog/2026/02/10/nextcloud-upgrade-fail/", "title": "Nextcloud\u306e\u81ea\u52d5\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306b\u5931\u6557\u3057\u3066\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3067disk full", "content_html": "
\n
\n

\n
\n

\u30b5\u30fc\u30d0\u304cdisk full \u306b\u306a\u308a\u8abf\u3079\u305f\u3089Nextcloud \u304c\u81ea\u52d5\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3068\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\uff0c\u3057\u304b\u3057\u5931\u6557\u3068\u3044\u3046\u306e\u3092\u6bce\u65e5\u7e70\u308a\u8fd4\u3057\u3066disk full \u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u306f\u3058\u30811\u6708\u307b\u3069\u524d\u306bdisk full \u306b\u306a\u308a\uff0ccron \u3067\u52d5\u304b\u3057\u3066\u3044\u308b\u30c7\u30a4\u30ea\u30fc\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u6e9c\u307e\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u3068\u601d\u3044\u305d\u3053\u3092\u6383\u9664\u3057\u305f\u306e\u3067\u3059\u304c\u4eca\u6708\u306b\u306a\u3063\u3066\u307e\u305fdisk full \u306b\uff0e
\ndu \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u78ba\u8a8d\u3059\u308b\u3068Nextcloud \u306e\u4e0b\u306e data/updater-${instanceid}/backups/ \u306b\u6bce\u65e5Nextcloud \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u4f5c\u3089\u308c\u3066\u3044\u307e\u3059\uff0e\u3053\u308c\u306e\u305b\u3044\u3067disk full \u306b\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3057\u305f\uff0e

\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n${instanceid} \u306b\u3064\u3044\u3066\u306f config/config.php \u306e 'instanceid' \u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\n
\n
\n
\n

\u3053\u3053\u306bNextcloud \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u4f5c\u3089\u308c\u308b\u306e\u306fNextcloud \u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u6642\u3067\u3059\uff0e\u307e\u305a\u306f\u624b\u52d5\u3067\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo -u www-data php updater/updater.phar\n\n  :\n\n[\u2718] Verify integrity failed\nThere are more files than the downloaded archive in the downloads/ folder.\n\nUpdate failed. To resume or retry just execute the updater again.
\n
\n
\n
\n

\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fNextcloud \u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u304a\u304b\u3057\u305d\u3046\u3067\u3059\uff0e\u8a73\u7d30\u3092\u77e5\u308b\u305f\u3081\u306b\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u307e\u3059\uff0e

\n
\n
\n
data/updater.log
\n
\n
2026-02-08T22:30:46+0000 T8hDMIut3r [info] storage location: /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/\n2026-02-08T22:30:57+0000 T8hDMIut3r [info] end of verifyIntegrity()
\n
\n
\n
\n

\u3053\u306e storage location \u306e\u4e0b\u3092\u898b\u308b\u3068\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u6b8b\u3063\u3066\u3044\u3066\u3053\u308c\u304c\u602a\u3057\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ ls -lA  /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/\n\u5408\u8a08 610548\n-rw-r--r-- 1 www-data www-data 312581794  1\u6708 16 04:09 nextcloud-32.0.4.zip\n-rw-r--r-- 1 www-data www-data 312597357  2\u6708  9 07:24 nextcloud-32.0.5.zip
\n
\n
\n
\n

\u53e4\u3044\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u524a\u9664\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ rm /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/nextcloud-32.0.4.zip
\n
\n
\n
\n

\u518d\u5ea6\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u8a66\u307f\u307e\u3059\uff0e(\u5148\u7a0b\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u53d6\u5f97\u3057\u3066\u3044\u308b\u306e\u3067\u4eca\u56de\u306f\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u30b9\u30ad\u30c3\u30d7)

\n
\n
\n
\n
$ sudo -u www-data php updater/updater.phar --no-backup\n\n  :\n\n\"occ upgrade\" finished\n\nKeep maintenance mode active? [y/N]\nMaintenance mode disabled\n\nMaintenance mode is disabled
\n
\n
\n
\n

\u4eca\u5ea6\u306f\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u6b63\u5e38\u306b\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n

\"nextcloud

\n
\n
\n

\u6b21\u306e\u65e5\u306b\u78ba\u8a8d\u3057\u3066\u3082\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u4f5c\u6210\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u3053\u308c\u3067\u3042\u305f\u308a\u306e\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ sudo -u www-data php /var/www/files.matoken.org/occ --version\nNextcloud 32.0.3\n$ lsb_release -dr\nNo LSB modules are available.\nDescription:    Debian GNU/Linux 12 (bookworm)\nRelease:        12\n$ arch\nx86_64
\n
\n
\n
\n
\n", "content_text": "\u30b5\u30fc\u30d0\u304cdisk full \u306b\u306a\u308a\u8abf\u3079\u305f\u3089Nextcloud \u304c\u81ea\u52d5\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3068\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\uff0c\u3057\u304b\u3057\u5931\u6557\u3068\u3044\u3046\u306e\u3092\u6bce\u65e5\u7e70\u308a\u8fd4\u3057\u3066disk full \u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n\u306f\u3058\u30811\u6708\u307b\u3069\u524d\u306bdisk full \u306b\u306a\u308a\uff0ccron \u3067\u52d5\u304b\u3057\u3066\u3044\u308b\u30c7\u30a4\u30ea\u30fc\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u6e9c\u307e\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u3068\u601d\u3044\u305d\u3053\u3092\u6383\u9664\u3057\u305f\u306e\u3067\u3059\u304c\u4eca\u6708\u306b\u306a\u3063\u3066\u307e\u305fdisk full \u306b\uff0e\ndu \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u78ba\u8a8d\u3059\u308b\u3068Nextcloud \u306e\u4e0b\u306e data/updater-${instanceid}/backups/ \u306b\u6bce\u65e5Nextcloud \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u4f5c\u3089\u308c\u3066\u3044\u307e\u3059\uff0e\u3053\u308c\u306e\u305b\u3044\u3067disk full \u306b\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3057\u305f\uff0e\n\n\n\n\n\nNote\n\n\n${instanceid} \u306b\u3064\u3044\u3066\u306f config/config.php \u306e 'instanceid' \u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\u3053\u3053\u306bNextcloud \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u4f5c\u3089\u308c\u308b\u306e\u306fNextcloud \u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u6642\u3067\u3059\uff0e\u307e\u305a\u306f\u624b\u52d5\u3067\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n$ sudo -u www-data php updater/updater.phar\n\n :\n\n[\u2718] Verify integrity failed\nThere are more files than the downloaded archive in the downloads/ folder.\n\nUpdate failed. To resume or retry just execute the updater again.\n\n\n\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fNextcloud \u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u304a\u304b\u3057\u305d\u3046\u3067\u3059\uff0e\u8a73\u7d30\u3092\u77e5\u308b\u305f\u3081\u306b\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u307e\u3059\uff0e\n\n\ndata/updater.log\n\n2026-02-08T22:30:46+0000 T8hDMIut3r [info] storage location: /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/\n2026-02-08T22:30:57+0000 T8hDMIut3r [info] end of verifyIntegrity()\n\n\n\n\u3053\u306e storage location \u306e\u4e0b\u3092\u898b\u308b\u3068\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u6b8b\u3063\u3066\u3044\u3066\u3053\u308c\u304c\u602a\u3057\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ ls -lA /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/\n\u5408\u8a08 610548\n-rw-r--r-- 1 www-data www-data 312581794 1\u6708 16 04:09 nextcloud-32.0.4.zip\n-rw-r--r-- 1 www-data www-data 312597357 2\u6708 9 07:24 nextcloud-32.0.5.zip\n\n\n\n\u53e4\u3044\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u524a\u9664\u3057\u307e\u3059\uff0e\n\n\n\n$ rm /var/www/files.matoken.org/data/updater-ocws62au2wl3/downloads/nextcloud-32.0.4.zip\n\n\n\n\u518d\u5ea6\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u8a66\u307f\u307e\u3059\uff0e(\u5148\u7a0b\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u53d6\u5f97\u3057\u3066\u3044\u308b\u306e\u3067\u4eca\u56de\u306f\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u30b9\u30ad\u30c3\u30d7)\n\n\n\n$ sudo -u www-data php updater/updater.phar --no-backup\n\n :\n\n\"occ upgrade\" finished\n\nKeep maintenance mode active? [y/N]\nMaintenance mode disabled\n\nMaintenance mode is disabled\n\n\n\n\u4eca\u5ea6\u306f\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u6b63\u5e38\u306b\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\u6b21\u306e\u65e5\u306b\u78ba\u8a8d\u3057\u3066\u3082\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u4f5c\u6210\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u3053\u308c\u3067\u3042\u305f\u308a\u306e\u3088\u3046\u3067\u3059\uff0e\n\n\n\u74b0\u5883\n\n$ sudo -u www-data php /var/www/files.matoken.org/occ --version\nNextcloud 32.0.3\n$ lsb_release -dr\nNo LSB modules are available.\nDescription: Debian GNU/Linux 12 (bookworm)\nRelease: 12\n$ arch\nx86_64", "date_published": "2026-02-10T05:55:20+09:00", "date_modified": "2026-02-10T05:55:21+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "disk full", "nextcloud", "bookworm", "Debian", "Linux" ] }, { "id": "https://matoken.org/blog/?p=5219", "url": "https://matoken.org/blog/2026/02/06/gnu-coreutils-9-10-paste/", "title": "GNU coreutils 9.10\u3067paste\u306e\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u5229\u7528\u53ef\u80fd\u306b", "content_html": "
\n
\n

\n
\n

GNU coreutils 9.10 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n\n
\n

paste \u3067\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8a8d\u8b58\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u305d\u3046\u3067\u3059\uff0e\u307e\u3060\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u3093\u3060\u3068\u3061\u3087\u3063\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
    \n
  • \n

    paste(1) is now multi-byte character aware

    \n
  • \n
\n
\n
\n
\n

\n
\n

\u307e\u305a\u306f\u9069\u5f53\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ echo '1\n2\n3' > num\n$ echo '\u3044\n\u308d\n\u306f' > data
\n
\n
\n
\n

GNU coreutils 9.7 \u306epaste \u3067\u8a66\u3059\u3068\u65e5\u672c\u8a9e\u306e\u30c7\u30fc\u30bf\u3082\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ paste --version | head -1\npaste (GNU coreutils) 9.7\n$ paste num data\n1       \u3044\n2       \u308d\n3       \u306f
\n
\n
\n
\n

NEWS \u306e\u4e0b\u306e\u65b9\u3092\u898b\u308b\u3068\u5c11\u3057\u8a73\u3057\u304f\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
\n
'paste' now supports multi-byte --delimiters characters.
\n
\n
\n
\n
\n
\n

\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067\u518d\u5ea6\uff0c\u4eca\u5ea6\u306f\u30c7\u30df\u30ea\u30bf\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e

\n
\n
\n
GNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b , \u3092\u6307\u5b9a
\n
\n
$ paste num data -d,\n1,\u3044\n2,\u308d\n3,\u306f
\n
\n
\n
\n
GNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b \uff1d \u3092\u6307\u5b9a
\n
\n
$ paste num data -d\uff1d\n1\ufffd\ufffd\n2\ufffd\ufffd\n3\ufffd\ufffd
\n
\n
\n
\n

\u305f\u3057\u304b\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u4f7f\u3046\u3068\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3059\uff0e

\n
\n
\n
GNU coreutils 9.10 \u3092\u7528\u610f
\n
\n
$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz \\\n\thttps://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig\n$ echo 'SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=' | cksum -a sha256 --check\ncoreutils-9.10.tar.xz: OK\n$ gpg --verify coreutils-9.10.tar.xz.sig\ngpg: assuming signed data in 'coreutils-9.10.tar.xz'\ngpg: Signature made Wed Feb  4 21:46:29 2026 JST\ngpg:                using RSA key 6C37DC12121A5006BC1DB804DF6FD971306037D9\ngpg: Good signature from \"P draig Brady <P@draigBrady.com>\" [unknown]\ngpg:                 aka \"P draig Brady <pixelbeat@gnu.org>\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg:          There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9\n$ tar xvf coreutils-9.10.tar.xz\n$ cd coreutils-9.10\n$ sudo apt build-dep coreutils\n$ ./configure\n$ make\n$ src/paste --version | head -1\npaste (GNU coreutils) 9.10
\n
\n
\n
\n
GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6307\u5b9a
\n
\n
$ ./src/paste num data -d\uff1d\n1\uff1d\u3044\n2\uff1d\u308d\n3\uff1d\u306f\n$ ./src/paste num data -d🐈\n1🐈\u3044\n2🐈\u308d\n3🐈\u306f
\n
\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\uff0e
\n\u4f7f\u3044\u9053\u306f\u3042\u307e\u308a\u6d6e\u304b\u3073\u307e\u305b\u3093\u304c\u2026\u2026\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W coreutils\ncoreutils       9.7-3\n$ src/paste --version\npaste (GNU coreutils) 9.10\nCopyright (C) 2026 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by David M. Ihnat and David MacKenzie.\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n\n
\n
\n", "content_text": "GNU coreutils 9.10 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\n\ncoreutils-9.10 released [stable]\n\n\n\n\npaste \u3067\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8a8d\u8b58\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u305d\u3046\u3067\u3059\uff0e\u307e\u3060\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u3093\u3060\u3068\u3061\u3087\u3063\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\npaste(1) is now multi-byte character aware\n\n\n\n\n\n\n\n\u307e\u305a\u306f\u9069\u5f53\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e\n\n\n\n$ echo '1\n2\n3' > num\n$ echo '\u3044\n\u308d\n\u306f' > data\n\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u8a66\u3059\u3068\u65e5\u672c\u8a9e\u306e\u30c7\u30fc\u30bf\u3082\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ paste --version | head -1\npaste (GNU coreutils) 9.7\n$ paste num data\n1 \u3044\n2 \u308d\n3 \u306f\n\n\n\nNEWS \u306e\u4e0b\u306e\u65b9\u3092\u898b\u308b\u3068\u5c11\u3057\u8a73\u3057\u304f\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\n\n'paste' now supports multi-byte --delimiters characters.\n\n\n\n\n\n\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067\u518d\u5ea6\uff0c\u4eca\u5ea6\u306f\u30c7\u30df\u30ea\u30bf\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b , \u3092\u6307\u5b9a\n\n$ paste num data -d,\n1,\u3044\n2,\u308d\n3,\u306f\n\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b \uff1d \u3092\u6307\u5b9a\n\n$ paste num data -d\uff1d\n1\ufffd\ufffd\n2\ufffd\ufffd\n3\ufffd\ufffd\n\n\n\n\u305f\u3057\u304b\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u4f7f\u3046\u3068\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3059\uff0e\n\n\nGNU coreutils 9.10 \u3092\u7528\u610f\n\n$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz \\\n\thttps://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig\n$ echo 'SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=' | cksum -a sha256 --check\ncoreutils-9.10.tar.xz: OK\n$ gpg --verify coreutils-9.10.tar.xz.sig\ngpg: assuming signed data in 'coreutils-9.10.tar.xz'\ngpg: Signature made Wed Feb 4 21:46:29 2026 JST\ngpg: using RSA key 6C37DC12121A5006BC1DB804DF6FD971306037D9\ngpg: Good signature from \"P draig Brady <P@draigBrady.com>\" [unknown]\ngpg: aka \"P draig Brady <pixelbeat@gnu.org>\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg: There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 6C37 DC12 121A 5006 BC1D B804 DF6F D971 3060 37D9\n$ tar xvf coreutils-9.10.tar.xz\n$ cd coreutils-9.10\n$ sudo apt build-dep coreutils\n$ ./configure\n$ make\n$ src/paste --version | head -1\npaste (GNU coreutils) 9.10\n\n\n\nGNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6307\u5b9a\n\n$ ./src/paste num data -d\uff1d\n1\uff1d\u3044\n2\uff1d\u308d\n3\uff1d\u306f\n$ ./src/paste num data -d🐈\n1🐈\u3044\n2🐈\u308d\n3🐈\u306f\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\uff0e\n\u4f7f\u3044\u9053\u306f\u3042\u307e\u308a\u6d6e\u304b\u3073\u307e\u305b\u3093\u304c\u2026\u2026\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W coreutils\ncoreutils 9.7-3\n$ src/paste --version\npaste (GNU coreutils) 9.10\nCopyright (C) 2026 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by David M. Ihnat and David MacKenzie.\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\ntoot\n\n\nmatoken :fox:: “coreutils-9.10 released [stabl\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-02-06T06:07:07+09:00", "date_modified": "2026-02-06T06:07:09+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "GNU coreutils", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=5214", "url": "https://matoken.org/blog/2026/02/06/virustotal-api-limit/", "title": "VirusTotal\u306ecli tool\u3068\u3042\u307e\u308a\u306b\u5c0f\u3055\u3044API\u5236\u9650", "content_html": "
\n
\n

\n
\n

\u4e45\u3005\u306bcli \u3067VirusTotal \u3092\u4f7f\u304a\u3046\u3068\u3057\u305f\u3089\u30c4\u30fc\u30eb\u304c\u5909\u66f4\u306b\u306a\u3063\u3066\u3044\u305f\u308a\uff0cAPI \u5236\u9650\u304c\u304a\u304b\u3057\u304f\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u4ee5\u524d\u306eblog \u30a8\u30f3\u30c8\u30ea\u3092\u78ba\u8a8d\u3059\u308b\u3068\uff0c

\n
\n\n
\n

\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u3044\u305f\u3088\u3046\u3067\u3059\u304c\uff0cArchived \u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n\n
\n

\u73fe\u5728\u306f\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u304c\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u3088\u3046\u306a\u306e\u3067\u3053\u3061\u3089\u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e

\n
\n\n
\n
build
\n
\n
$ git clone https://github.com/VirusTotal/vt-cli\n$ cd vt-cli\n$ make\n$ build/vt -h\nA command-line tool for interacting with VirusTotal.\n\nUsage:\n  vt [command]\n\nAvailable Commands:\n  analysis       Get a file or URL analysis\n  collection     Get information about collections\n  completion     Output shell completion code for the specified shell (bash or zsh)\n  domain         Get information about Internet domains\n  download       Download files\n  file           Get information about files\n  group          Get information about VirusTotal groups\n  help           Help about any command\n  hunting        Manage malware hunting rules and notifications\n  init           Initialize or re-initialize vt command-line tool\n  iocstream      Manage IoC Stream notifications\n  ip             Get information about IP addresses\n  meta           Returns metadata about VirusTotal\n  monitor        Manage your monitor account\n  monitorpartner Manage your monitor partner account\n  retrohunt      Manage retrohunt jobs\n  scan           Scan files or URLs\n  search         Search for files in VirusTotal Intelligence\n  threatprofile  Get information about Threat Profiles\n  url            Get information about URLs\n  user           Get information about VirusTotal users\n  version        Show version number\n\nFlags:\n  -k, --apikey string   API key\n      --format string   Output format (yaml/json/csv) (default \"yaml\")\n  -h, --help            help for vt\n  -s, --silent          Silent or quiet mode. Do not show progress meter\n  -v, --verbose         verbose output\n\nUse \"vt [command] --help\" for more information about a command.
\n
\n
\n
\n
API key \u767b\u9332
\n
\n
$ build/vt init\n\n\u2588\u2588\u2557   \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557   \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\n\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\n\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2551   \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551\n\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551   \u2588\u2588\u2551\u255a\u2550\u2550\u2550\u2550\u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2551   \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551\n \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551  \u2588\u2588\u2551\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551   \u2588\u2588\u2551   \u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d   \u2588\u2588\u2551   \u2588\u2588\u2551  \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\n  \u255a\u2550\u2550\u2550\u255d  \u255a\u2550\u255d\u255a\u2550\u255d  \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d   \u255a\u2550\u255d    \u255a\u2550\u2550\u2550\u2550\u2550\u255d    \u255a\u2550\u255d   \u255a\u2550\u255d  \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n\nVirusTotal Command-Line Interface: Threat Intelligence at your fingertips.\n\nEnter your API key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nAPI key written to config file: /home/matoken/.vt.toml\nRelationships cache written to: /home/matoken/.cache/.vt.relationships.cache
\n
\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n
\n

API key \u306fVirusTotal \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u72b6\u614b\u3067\uff0c\u53f3\u4e0a\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3068\u304d\u306b\u51fa\u3066\u304f\u308b\u300cAPI key\u300d\u304b\u3089\u53d6\u5f97\u3067\u304d\u307e\u3059\uff0e

\n
\n
\n
\n
\n

\u6e96\u5099\u304c\u3067\u304d\u305f\u306e\u3067\u30b9\u30ad\u30e3\u30f3\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e

\n
\n
\n
\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
\n
\n
$ build/vt scan file ~/Downloads/briar-desktop-x64-0.6.4-beta.AppImage\n/home/matoken/Downloads/briar-desktop-x64-0.6.4-beta.AppImage YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA==
\n
\n
\n
\n

\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u3066\u307f\u3088\u3046\u3068\u3057\u307e\u3059\uff0e\u3057\u304b\u3057\u5236\u9650\u306b\u639b\u304b\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\u7d50\u679c\u306e\u78ba\u8a8d
\n
\n
$ build/vt analysis YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA==\nQuota exceeded
\n
\n
\n
\n

\u7121\u6599\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u5236\u9650\u3092\u78ba\u8a8d\u3059\u308b\u30681\u65e5\u3042\u305f\u308a500\u30ea\u30af\u30a8\u30b9\u30c8\u3068\u304b1\u5206\u8fba\u308a4\u4ef6\u3068\u304b\u3067\u7d50\u69cb\u5e83\u304f\u306a\u305c\u5236\u9650\u3055\u308c\u305f\u306e\u304b\u308f\u304b\u308a\u307e\u305b\u3093\uff0e

\n
\n
\n
\n
\n

Public API constraints and restrictions

\n
\n
\n

The Public API is limited to 500 requests per day and a rate of 4 requests per minute.
\nThe Public API must not be used in commercial products or services.
\nThe Public API must not be used in business workflows that do not contribute new files.
\nYou are not allowed to register multiple accounts to overcome the aforementioned limitations.

\n
\n
\n\n
\n
\n

\u81ea\u5206\u306eAPI \u30da\u30fc\u30b8\u3092\u78ba\u8a8d\u3059\u308b\u3068\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30da\u30fc\u30b8\u3068\u9055\u3044\u4ee5\u4e0b\u306e\u3088\u3046\u306b1\u65e51\u554f\u3044\u5408\u308f\u305b\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\u5c11\u306a\u3059\u304e\u308b\u2026\u2026.

\n
\n
\n
\n
Access level\n Limited , standard free public API\nUpgrade to premium\nUsage \tMust not be used in business workflows, commercial products or services.\nRequest rate \t1 lookups / min\nDaily quota \t1 lookups / day\nMonthly quota \t31 lookups / month
\n
\n
\n
\n

\"virustotal
\n\"virustotal
\n\"virustotal

\n
\n
\n

\u4ee5\u4e0b\u306e\u30d5\u30a9\u30fc\u30e9\u30e0\u3092\u898b\u308b\u3068\u7d50\u69cb\u53e4\u3044\u554f\u984c\u306e\u3088\u3046\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u308a\u76f4\u3055\u306a\u3044\u3068\u6cbb\u3089\u306a\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

If you have an old account with stricter limitations than described, it might be best to set up a new account to ensure you benefit from current limitations stated.

\n
\n
\n\n
\n
\n

\u3061\u306a\u307f\u306b\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u30da\u30fc\u30b8\u306f\u3053\u3093\u306a\u611f\u3058\u30679\u5e74\u524d\u306b\u4f5c\u3063\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n

\"virustotal

\n
\n
\n

\u4ed5\u65b9\u304c\u306a\u3044\u306e\u3067VirusTotal \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u4f5c\u308a\u76f4\u3057\u307e\u3059\uff0e

\n
\n
\n

\"virustotal

\n
\n
\n
    \n
  • \n

    \u65e2\u5b58\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664

    \n
  • \n
  • \n

    \u65e2\u5b58\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8

    \n
  • \n
  • \n

    \u65b0\u898f\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210

    \n
    \n
      \n
    • \n

      \u3053\u306e\u3068\u304d\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u3068\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u540c\u3058\u3060\u3068\u99c4\u76ee

      \n
    • \n
    \n
    \n
  • \n
  • \n

    API key \u3092\u53d6\u5f97\u3057\u3066 vt init \u3092\u5b9f\u884c\u3057\u3066API key \u518d\u767b\u9332

    \n
  • \n
\n
\n
\n

\u65b0\u3057\u3044\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u6b63\u3044\u5236\u9650\u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
Access level\n Limited , standard free public API\nUpgrade to premium\nUsage \tMust not be used in business workflows, commercial products or services.\nRequest rate \t4 lookups / min\nDaily quota \t500 lookups / day\nMonthly quota \t15.5 K lookups / month
\n
\n
\n
\n

\u3053\u308c\u3067\u666e\u901a\u306b\u52d5\u304b\u305b\u305d\u3046\u306a\u611f\u3058\u3067\u3059\uff0e

\n
\n
\n
\n
$ build/vt analysis YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA== | tail -10\n  stats:\n    confirmed-timeout: 0\n    failure: 0\n    harmless: 0\n    malicious: 0\n    suspicious: 0\n    timeout: 0\n    type-unsupported: 12\n    undetected: 64\n  status: \"completed\"
\n
\n
\n
\n
\u74b0\u5883
\n
\n
$ build/vt version\nvt-cli\n$ git log --pretty=oneline -1\nd3405587c568b6486ccd5ac773cde1a25e4bb762 (HEAD -> master, origin/master, origin/HEAD) chore: upgrade `vt-go` to version 1.1.0.\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n\n
\n
\n", "content_text": "\u4e45\u3005\u306bcli \u3067VirusTotal \u3092\u4f7f\u304a\u3046\u3068\u3057\u305f\u3089\u30c4\u30fc\u30eb\u304c\u5909\u66f4\u306b\u306a\u3063\u3066\u3044\u305f\u308a\uff0cAPI \u5236\u9650\u304c\u304a\u304b\u3057\u304f\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\n\u4ee5\u524d\u306eblog \u30a8\u30f3\u30c8\u30ea\u3092\u78ba\u8a8d\u3059\u308b\u3068\uff0c\n\n\n\n\nVirusTotal\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u5229\u7528\u3059\u308b \u2013 matoken’s blog\n\n\n\n\n\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u3044\u305f\u3088\u3046\u3067\u3059\u304c\uff0cArchived \u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\nVirusTotal/c-vtapi: Official implementation of the VirusTotal API in C programming language\n\n\n\n\n\u73fe\u5728\u306f\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u304c\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u3088\u3046\u306a\u306e\u3067\u3053\u3061\u3089\u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\nVirusTotal/vt-cli: VirusTotal Command Line Interface\n\n\n\n\nbuild\n\n$ git clone https://github.com/VirusTotal/vt-cli\n$ cd vt-cli\n$ make\n$ build/vt -h\nA command-line tool for interacting with VirusTotal.\n\nUsage:\n vt [command]\n\nAvailable Commands:\n analysis Get a file or URL analysis\n collection Get information about collections\n completion Output shell completion code for the specified shell (bash or zsh)\n domain Get information about Internet domains\n download Download files\n file Get information about files\n group Get information about VirusTotal groups\n help Help about any command\n hunting Manage malware hunting rules and notifications\n init Initialize or re-initialize vt command-line tool\n iocstream Manage IoC Stream notifications\n ip Get information about IP addresses\n meta Returns metadata about VirusTotal\n monitor Manage your monitor account\n monitorpartner Manage your monitor partner account\n retrohunt Manage retrohunt jobs\n scan Scan files or URLs\n search Search for files in VirusTotal Intelligence\n threatprofile Get information about Threat Profiles\n url Get information about URLs\n user Get information about VirusTotal users\n version Show version number\n\nFlags:\n -k, --apikey string API key\n --format string Output format (yaml/json/csv) (default \"yaml\")\n -h, --help help for vt\n -s, --silent Silent or quiet mode. Do not show progress meter\n -v, --verbose verbose output\n\nUse \"vt [command] --help\" for more information about a command.\n\n\n\nAPI key \u767b\u9332\n\n$ build/vt init\n\n\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\n\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\n\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551\n\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u255a\u2550\u2550\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551\n \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\n \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n\nVirusTotal Command-Line Interface: Threat Intelligence at your fingertips.\n\nEnter your API key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nAPI key written to config file: /home/matoken/.vt.toml\nRelationships cache written to: /home/matoken/.cache/.vt.relationships.cache\n\n\n\n\n\n\nNote\n\n\n\nAPI key \u306fVirusTotal \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u72b6\u614b\u3067\uff0c\u53f3\u4e0a\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3068\u304d\u306b\u51fa\u3066\u304f\u308b\u300cAPI key\u300d\u304b\u3089\u53d6\u5f97\u3067\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\n\u6e96\u5099\u304c\u3067\u304d\u305f\u306e\u3067\u30b9\u30ad\u30e3\u30f3\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e\n\n\n\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\n\n$ build/vt scan file ~/Downloads/briar-desktop-x64-0.6.4-beta.AppImage\n/home/matoken/Downloads/briar-desktop-x64-0.6.4-beta.AppImage YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA==\n\n\n\n\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u3066\u307f\u3088\u3046\u3068\u3057\u307e\u3059\uff0e\u3057\u304b\u3057\u5236\u9650\u306b\u639b\u304b\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\u7d50\u679c\u306e\u78ba\u8a8d\n\n$ build/vt analysis YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA==\nQuota exceeded\n\n\n\n\u7121\u6599\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u5236\u9650\u3092\u78ba\u8a8d\u3059\u308b\u30681\u65e5\u3042\u305f\u308a500\u30ea\u30af\u30a8\u30b9\u30c8\u3068\u304b1\u5206\u8fba\u308a4\u4ef6\u3068\u304b\u3067\u7d50\u69cb\u5e83\u304f\u306a\u305c\u5236\u9650\u3055\u308c\u305f\u306e\u304b\u308f\u304b\u308a\u307e\u305b\u3093\uff0e\n\n\n\n\nPublic API constraints and restrictions\n\n\nThe Public API is limited to 500 requests per day and a rate of 4 requests per minute. \nThe Public API must not be used in commercial products or services. \nThe Public API must not be used in business workflows that do not contribute new files. \nYou are not allowed to register multiple accounts to overcome the aforementioned limitations.\n\n\n\n— Public vs Premium API\n\n\n\n\u81ea\u5206\u306eAPI \u30da\u30fc\u30b8\u3092\u78ba\u8a8d\u3059\u308b\u3068\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30da\u30fc\u30b8\u3068\u9055\u3044\u4ee5\u4e0b\u306e\u3088\u3046\u306b1\u65e51\u554f\u3044\u5408\u308f\u305b\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\u5c11\u306a\u3059\u304e\u308b\u2026\u2026.\n\n\n\nAccess level\n Limited , standard free public API\nUpgrade to premium\nUsage \tMust not be used in business workflows, commercial products or services.\nRequest rate \t1 lookups / min\nDaily quota \t1 lookups / day\nMonthly quota \t31 lookups / month\n\n\n\n\n\n\n\n\n\u4ee5\u4e0b\u306e\u30d5\u30a9\u30fc\u30e9\u30e0\u3092\u898b\u308b\u3068\u7d50\u69cb\u53e4\u3044\u554f\u984c\u306e\u3088\u3046\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u308a\u76f4\u3055\u306a\u3044\u3068\u6cbb\u3089\u306a\u305d\u3046\u3067\u3059\uff0e\n\n\n\n\nIf you have an old account with stricter limitations than described, it might be best to set up a new account to ensure you benefit from current limitations stated.\n\n\n\n— VirusTotal Functionality – GlassWire Help – GlassWire Internet Security Forum\n\n\n\n\u3061\u306a\u307f\u306b\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u30da\u30fc\u30b8\u306f\u3053\u3093\u306a\u611f\u3058\u30679\u5e74\u524d\u306b\u4f5c\u3063\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\n\u4ed5\u65b9\u304c\u306a\u3044\u306e\u3067VirusTotal \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u4f5c\u308a\u76f4\u3057\u307e\u3059\uff0e\n\n\n\n\n\n\n\n\u65e2\u5b58\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664\n\n\n\u65e2\u5b58\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\n\n\n\u65b0\u898f\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\n\n\n\n\u3053\u306e\u3068\u304d\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u3068\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u540c\u3058\u3060\u3068\u99c4\u76ee\n\n\n\n\n\nAPI key \u3092\u53d6\u5f97\u3057\u3066 vt init \u3092\u5b9f\u884c\u3057\u3066API key \u518d\u767b\u9332\n\n\n\n\n\u65b0\u3057\u3044\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u6b63\u3044\u5236\u9650\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\nAccess level\n Limited , standard free public API\nUpgrade to premium\nUsage \tMust not be used in business workflows, commercial products or services.\nRequest rate \t4 lookups / min\nDaily quota \t500 lookups / day\nMonthly quota \t15.5 K lookups / month\n\n\n\n\u3053\u308c\u3067\u666e\u901a\u306b\u52d5\u304b\u305b\u305d\u3046\u306a\u611f\u3058\u3067\u3059\uff0e\n\n\n\n$ build/vt analysis YTg3MzBiNGEwOWFmODUxMjgwYmFjOGI0YjE1YmQ4MTE6MTc3MDE5NDcyOA== | tail -10\n stats:\n confirmed-timeout: 0\n failure: 0\n harmless: 0\n malicious: 0\n suspicious: 0\n timeout: 0\n type-unsupported: 12\n undetected: 64\n status: \"completed\"\n\n\n\n\u74b0\u5883\n\n$ build/vt version\nvt-cli\n$ git log --pretty=oneline -1\nd3405587c568b6486ccd5ac773cde1a25e4bb762 (HEAD -> master, origin/master, origin/HEAD) chore: upgrade `vt-go` to version 1.1.0.\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\ntoot\n\n\nmatoken :fox:: “VirusTotal \u306e\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30c4\u30fc\u30ebArchived\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-02-06T05:49:13+09:00", "date_modified": "2026-02-06T05:49:15+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "VirusTotal", "Debian", "Linux", "sid" ] } ] }