{
    "id": "youtube-manager@beatlink",
    "name": "YouTube Manager",
    "description": "A YouTube subscription tracker for TriliumNext, in the spirit of NoUTube: subscribe to channels, get one feed of everything they upload, and keep a permanent record of what you watched. No Google API key and no quota. Channel data comes from YouTube.js, which reads YouTube's own InnerTube API and runs entirely in the frontend, proxied through a narrow host-allowlisted backend endpoint because YouTube sends no CORS headers. Your subscriptions, the rolling video cache, your watch history, and your playlists live in one JSON note you can back up, inspect, or hand-edit. A History tab lists everything you watched, newest first, with per-video removal and a clear-all. A Playlists tab holds playlists you build with a + on any video row, reorderable and renameable, alongside read-only snapshots of channel playlists you follow. Add channels by pasting URLs or @handles, import a FreeTube subscription export in one go, or search YouTube from the widget and subscribe to a result. The search box also opens a pasted video URL in the player and a pasted channel URL as a full channel page: banner, subscriber and video counts, uploads with a Latest/Popular/Oldest sort and paging, a search across that channel's whole catalogue, its public playlists, and an About panel with its featured channels. Playback is YouTube's iframe embed inside the widget. Sponsor segments in a playing video are skipped automatically, using SponsorBlock. Shorts are hidden by default. There is no background sync: YouTube.js ships ESM-only and cannot be loaded by a Trilium backend script, so refreshes happen while the widget is open.",
    "author": "BeatLink",
    "homepage": "https://github.com/BeatLink/trilium-scripts/tree/main/addons/youtube-manager@beatlink",
    "license": "GPL-3.0-or-later",
    "latestVersion": "1.7.0",
    "type": "widget",
    "readme": "README.md",
    "manifestSourceUrl": "https://beatlink.github.io/trilium-scripts/youtube-manager@beatlink/_tam_manifest_.json",
    "manifest": {
        "settingsNote": "settings-page",
        "notes": [
            {
                "id": "launcher",
                "title": "youtube-manager@beatlink",
                "type": "render",
                "mime": "text/html",
                "sourceUrl": null
            },
            {
                "id": "view",
                "title": "youtubeManager.jsx",
                "type": "code",
                "mime": "text/jsx",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/youtubeManager.jsx",
                "sha": "588042cc9aa66724e2bc316ec6b944c8810a70fc0dbbc5a07e9950016691dc4a",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/youtubeManager.jsx"
            },
            {
                "id": "style",
                "title": "youtubeManager.css",
                "type": "code",
                "mime": "text/css",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/youtubeManager.css",
                "sha": "f3d3e436a74529e6787114ab9943ae532fd2f42e24f433f47e55ed4d8859dcdb",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/youtubeManager.css"
            },
            {
                "id": "lib-youtube",
                "title": "libYouTube.js",
                "type": "code",
                "mime": "application/javascript;env=frontend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/libYouTube.js",
                "sha": "d250d87d6c32cc87665432b4ed4abaa2b2575231f861257ee6bb8a321c7c7778",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/libYouTube.js"
            },
            {
                "id": "libsponsorblock",
                "title": "libSponsorBlock.js",
                "type": "code",
                "mime": "application/javascript;env=frontend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libsponsorblock/libsponsorblock.js",
                "sha": "6a62db2d376a2ccb389bc5a69fa143e3b0ce470cf5bc2d4c2afe40b642b7a932",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libsponsorblock/libsponsorblock.js"
            },
            {
                "id": "youtubei",
                "title": "youtubei.js",
                "type": "code",
                "mime": "application/javascript",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libyoutubei/browser.js",
                "sha": "48042eeba148d34e6bbc88f2291bcb4ee0fcf6d32c78ea269dfe6a9f4c26eec4",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libyoutubei/browser.js"
            },
            {
                "id": "backend",
                "title": "youtubeManagerBackend.js",
                "type": "code",
                "mime": "application/javascript;env=backend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/youtubeManagerBackend.js",
                "sha": "959affdf5b683b5563b52fbb899e85b91fe7342442cf698ed7ee4b50218e0289",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/youtubeManagerBackend.js"
            },
            {
                "id": "lib-store",
                "title": "libYouTubeStore.js",
                "type": "code",
                "mime": "application/javascript;env=backend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/libYouTubeStore.js",
                "sha": "e74958907b0325493e58e526a7235e444bb2606f9e51065dc52f76769f24457d",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/libYouTubeStore.js"
            },
            {
                "id": "settings-page",
                "title": "Settings",
                "type": "render",
                "mime": "text/html",
                "sourceUrl": null
            },
            {
                "id": "settings",
                "title": "settings.jsx",
                "type": "code",
                "mime": "text/jsx",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/settings.jsx",
                "sha": "11e3e9e306b451ffb99fdcb599d4691b979b2b145bfa7a689200430619cd7c33",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/settings.jsx"
            },
            {
                "id": "schema",
                "title": "schema.json",
                "type": "code",
                "mime": "application/json",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/schema.json",
                "sha": "c111ac1d3dc2da86439b9a998c7353d28c07142cfe0981fa308df8b0c3bd08d9",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/schema.json"
            },
            {
                "id": "defaults",
                "title": "defaults.json",
                "type": "code",
                "mime": "application/json",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/defaults.json",
                "sha": "d4c6e3d39e0fe6308483f1474da359b93ea9d1e4fec7fcea78621bf2c1e605ae",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/defaults.json"
            },
            {
                "id": "config",
                "title": "config.json",
                "type": "code",
                "mime": "application/json",
                "sourceUrl": null
            },
            {
                "id": "database",
                "title": "Database",
                "type": "code",
                "mime": "application/json",
                "sourceUrl": null
            },
            {
                "id": "readme",
                "title": "README.md",
                "type": "code",
                "mime": "text/markdown",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/addons/youtube-manager@beatlink/README.md",
                "renderAsHTML": true,
                "sha": "8fec03fcc3e3840bd52afcab3e9b3132276492ea1058edbca8c586d7efd1569c",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/addons/youtube-manager@beatlink/README.md"
            },
            {
                "id": "libsettings-backend",
                "title": "libSettings.js",
                "type": "code",
                "mime": "application/javascript;env=backend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libsettings/libsettings-backend.js",
                "sha": "3c4b119a6d3ec639f1172763670484186755d8d71c544e64b09f118d3edca909",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libsettings/libsettings-backend.js"
            },
            {
                "id": "libsettings-core",
                "title": "libSettingsCore.js",
                "type": "code",
                "mime": "application/javascript;env=frontend",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libsettings/libsettings-core.js",
                "sha": "6fb4ffee0a776ef38a6646ccbc21dc276614f9ea02d61f1f4f9f877e94b0c586",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libsettings/libsettings-core.js"
            },
            {
                "id": "libsettings-ui",
                "title": "libSettingsUI.jsx",
                "type": "code",
                "mime": "text/jsx",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libsettings/libsettings-ui.jsx",
                "sha": "66d4adead5e0447deba7f5cfa2a1573680ece1af619c53eb7241036122fce1a6",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libsettings/libsettings-ui.jsx"
            },
            {
                "id": "libsettings-style",
                "title": "libSettingsUI.css",
                "type": "code",
                "mime": "text/css",
                "sourceUrl": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/b053fc798f431665831d2f7cb02d9197da958d0b/libs/libsettings/libsettings-ui.css",
                "sha": "43a6d3eba0af6f5e197064c7d0054a2ad725cd553c112f3b7427cd4830f2a75f",
                "sourceId": "https://raw.githubusercontent.com/BeatLink/trilium-scripts/refs/heads/main/libs/libsettings/libsettings-ui.css"
            }
        ],
        "children": [
            {
                "parent": "root",
                "child": "launcher"
            },
            {
                "parent": "launcher",
                "child": "view"
            },
            {
                "parent": "view",
                "child": "style"
            },
            {
                "parent": "view",
                "child": "lib-youtube"
            },
            {
                "parent": "view",
                "child": "libsponsorblock"
            },
            {
                "parent": "lib-youtube",
                "child": "youtubei"
            },
            {
                "parent": "launcher",
                "child": "backend"
            },
            {
                "parent": "backend",
                "child": "libsettings-backend"
            },
            {
                "parent": "backend",
                "child": "lib-store"
            },
            {
                "parent": "launcher",
                "child": "settings-page"
            },
            {
                "parent": "settings-page",
                "child": "settings"
            },
            {
                "parent": "settings",
                "child": "libsettings-ui"
            },
            {
                "parent": "libsettings-ui",
                "child": "libsettings-core"
            },
            {
                "parent": "libsettings-ui",
                "child": "libsettings-style"
            },
            {
                "parent": "launcher",
                "child": "schema"
            },
            {
                "parent": "launcher",
                "child": "defaults"
            },
            {
                "parent": "persistence",
                "child": "config"
            },
            {
                "parent": "persistence",
                "child": "database"
            },
            {
                "parent": "launcher",
                "child": "readme"
            }
        ],
        "relations": [
            {
                "from": "launcher",
                "type": "renderNote",
                "to": "view"
            },
            {
                "from": "settings-page",
                "type": "renderNote",
                "to": "settings"
            },
            {
                "from": "view",
                "type": "settingsPageNote",
                "to": "settings-page"
            },
            {
                "from": "settings",
                "type": "schemaNote",
                "to": "schema"
            },
            {
                "from": "settings",
                "type": "configNote",
                "to": "config"
            },
            {
                "from": "settings",
                "type": "managerPageNote",
                "to": "launcher"
            },
            {
                "from": "backend",
                "type": "schemaNote",
                "to": "schema"
            },
            {
                "from": "backend",
                "type": "settingsNote",
                "to": "settings"
            },
            {
                "from": "backend",
                "type": "databaseNote",
                "to": "database"
            },
            {
                "from": "config",
                "type": "sourceConfig",
                "to": "defaults"
            }
        ],
        "labels": [
            {
                "note": "backend",
                "name": "customRequestHandler",
                "value": "youtubeManager"
            },
            {
                "note": "youtubei",
                "name": "customResourceProvider",
                "value": "libYoutubei.js"
            },
            {
                "note": "view",
                "name": "youtubeManagerRender",
                "value": ""
            },
            {
                "note": "style",
                "name": "appCss",
                "value": ""
            },
            {
                "note": "libsettings-style",
                "name": "appCss",
                "value": ""
            },
            {
                "note": "database",
                "name": "youtubeManagerDatabase",
                "value": ""
            },
            {
                "note": "launcher",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "view",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "backend",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "lib-youtube",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "lib-store",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "schema",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "config",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            },
            {
                "note": "database",
                "name": "iconClass",
                "value": "bx bx-data"
            },
            {
                "note": "settings-page",
                "name": "iconClass",
                "value": "bx bx-cog"
            },
            {
                "note": "readme",
                "name": "iconClass",
                "value": "bx bxl-youtube"
            }
        ],
        "readmeNote": "readme",
        "settings": {
            "schema": "schema",
            "defaults": "defaults",
            "config": "config"
        }
    },
    "contentHash": "518d0a38b88f924cf19860f7ea7adb6f9b5f876e1fc29643796e318202132ddf"
}
