{"_id":"@analytics-sdk/adapter-youtube","_rev":"7-b099988a78e818c3ef2e772780863703","name":"@analytics-sdk/adapter-youtube","dist-tags":{"latest":"0.3.6"},"versions":{"0.3.1":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.1","_id":"@analytics-sdk/adapter-youtube@0.3.1","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"0fbc92e60903ae99a7f796f4b4a037795acc262f","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.1.tgz","fileCount":24,"integrity":"sha512-k97/INudWIvmKgRbD87Sf3Orl6NWXM3sGaj3cZ7ldNUgdnzPtCRKyoOfjQKg/jyW/3ZYX4OWIULE7A7Kbn7GQw==","signatures":[{"sig":"MEUCIGNkaICaByIw1sMlc4HNet/JN8i5O3Somz3+eNOPxIwfAiEA2at8d+BoI4mYDxJ4AMRDNYaxP4gDVK0BbgJgF/6a0p4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32610},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"1c9353e0b79da0f0dab9d1ec396f69a2318726fc","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"vitest":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.1.0"},"peerDependencies":{"@analytics-sdk/core":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.1_1776521242381_0.47029606150713654","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.2":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.2","license":"MIT","_id":"@analytics-sdk/adapter-youtube@0.3.2","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"00e528181ae92ad2b9b9086d2882671972a8bfe5","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.2.tgz","fileCount":25,"integrity":"sha512-zUA/Nph+rszqgdR+6ppc6WACHw+65W4D9zdZsV4o7V1v8lE+ywO2q5qjEB7aApiONMfYYaC7b7+ysA1HLH+Xeg==","signatures":[{"sig":"MEYCIQD7PrbygGo70AARGfq0/f2T+5bYF9+P32G6c7vHhoz9vgIhAMNklGxiY8os4i7LHgT5p+cCoQuBwJ9en1LYLEvYer2S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33649},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"5a4ee33ac322c4a329602f21532ff28e721cfad6","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.3.2"},"peerDependencies":{"@analytics-sdk/core":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.2_1776534843263_0.8683796059758013","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.3":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.3","license":"MIT","_id":"@analytics-sdk/adapter-youtube@0.3.3","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"5f95b8ac83003fb98aefacf27822b58121c6e9da","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.3.tgz","fileCount":25,"integrity":"sha512-j1F5RWcUVk0Fyws3cX+EAAjGG+C9x5RobTc55XFXPFaH4bo4MAa8ePqCdmGUqMUq03Ey6Sg63lpApmLpBv31XA==","signatures":[{"sig":"MEQCIG/VSBEdowujj3yF1jZB9poqC0f0UYdRoO9z0I24+viEAiA9T45YcQcW/LZAWdt+N07X0pJExWYBafGXKEgiO07RqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39686},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"f26187dfde643c05d5087edcd1bb9c6ba534d526","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.3.3"},"peerDependencies":{"@analytics-sdk/core":"^0.3.3"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.3_1776606758928_0.9954103878044263","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.4":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.4","license":"MIT","_id":"@analytics-sdk/adapter-youtube@0.3.4","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"8875c4f5d60b17f69fb8a9e85e80f8f264a68255","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.4.tgz","fileCount":25,"integrity":"sha512-gjZXZ304Ch+TN9zMCqbgR17q1xMFWW7Qfq3MH7m3R1e4NHvHqG76kmrymWyzGBFSgYujsrkIPw1a7ZiYepoiVw==","signatures":[{"sig":"MEYCIQDTb+AAOICOOOpvR7QbHGLIhi3uDLTYesDRtv/MIA9LcgIhAMlnSMt7oq9KB2f4bwlxkKdM4sDfpN/Py2BPqqZs3d9H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39966},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"f6f8eceee99d2b81f8b2b7ae6677ecab6d7fb6b9","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.3.4"},"peerDependencies":{"@analytics-sdk/core":"^0.3.4"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.4_1776611786128_0.3105570697795135","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.5":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.5","keywords":["analytics","analytics-sdk","youtube","youtube-analytics","video-analytics","media-analytics","youtube-iframe","adapter","typescript","tanilytics"],"license":"MIT","_id":"@analytics-sdk/adapter-youtube@0.3.5","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"b8af8db6f8af2c188f4b8394bd7d6593772301ff","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.5.tgz","fileCount":25,"integrity":"sha512-bEEMR0S4h2OC01hlbM5Y9DG1R+fkjJTGsqfK8uZ7CxWaW1AQPU6lsgO5z/FAE7XrZsNddKWvHNjqBaR/a6TfXg==","signatures":[{"sig":"MEUCIHQW1cfZmBDxsX6VFaNnBUy/cMsPnJcpTGaGCnZryhjjAiEA2/cwdJIn2jf/DrmyalhbreVmwaVaDYQBNuzx9Zc+O5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40183},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"b91f50e9c821cef4124e0852fc2b88956ca4ae70","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.3.5"},"peerDependencies":{"@analytics-sdk/core":"^0.3.5"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.5_1776635279107_0.8344101824000749","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.6":{"name":"@analytics-sdk/adapter-youtube","version":"0.3.6","keywords":["analytics","analytics-sdk","youtube","youtube-analytics","video-analytics","media-analytics","youtube-iframe","adapter","typescript","tanilytics"],"license":"MIT","_id":"@analytics-sdk/adapter-youtube@0.3.6","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"homepage":"https://github.com/Tanilytics/analytics-sdk#readme","bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"nx":{"tags":["scope:adapter","type:library"]},"dist":{"shasum":"3874ca4eab7fc72cff078adbbf36ec0a276c29a3","tarball":"https://registry.npmjs.org/@analytics-sdk/adapter-youtube/-/adapter-youtube-0.3.6.tgz","fileCount":25,"integrity":"sha512-3CX8cXW+eZJRjykZNqpDO1NEracRE5yRKxD/fQeHt5D5w7hdFSc0pCKet+kvLuAsZs6+CvLrur+siokUo8VnFQ==","signatures":[{"sig":"MEUCIBUPZuuCSC8p39p7bNK25oHZX3BLJQjdp7ovtm4z7NYXAiEA9YnQUgtPXQ2V54UZAwiLgvamJSAFzVB1T/QgRvlzvaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40183},"main":"./dist/index.esm.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","@org/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"aecefd470fbf1b2438a0fe1e5e4e520f5133bbb4","_npmUser":{"name":"tanilytics","email":"tanilytics@gmail.com"},"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"_npmVersion":"11.11.0","description":"YouTube iframe adapter for `@analytics-sdk/core`.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.9","@analytics-sdk/core":"^0.3.6"},"peerDependencies":{"@analytics-sdk/core":"^0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/adapter-youtube_0.3.6_1777139841051_0.8111776663773418","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-04-18T14:07:22.303Z","modified":"2026-04-25T21:01:13.091Z","0.3.1":"2026-04-18T14:07:22.519Z","0.3.2":"2026-04-18T17:54:03.386Z","0.3.3":"2026-04-19T13:52:39.081Z","0.3.4":"2026-04-19T15:16:26.296Z","0.3.5":"2026-04-19T21:47:59.232Z","0.3.6":"2026-04-25T17:57:21.193Z"},"bugs":{"url":"https://github.com/Tanilytics/analytics-sdk/issues"},"license":"MIT","homepage":"https://github.com/Tanilytics/analytics-sdk#readme","keywords":["analytics","analytics-sdk","youtube","youtube-analytics","video-analytics","media-analytics","youtube-iframe","adapter","typescript","tanilytics"],"repository":{"url":"git+https://github.com/Tanilytics/analytics-sdk.git","type":"git","directory":"packages/media-adapters/youtube"},"description":"YouTube iframe adapter for `@analytics-sdk/core`.","maintainers":[{"name":"tanilytics","email":"tanilytics@gmail.com"}],"readme":"# @analytics-sdk/adapter-youtube\n\nYouTube iframe adapter for `@analytics-sdk/core`.\n\n## Installation\n\n```bash\nnpm install @analytics-sdk/core @analytics-sdk/adapter-youtube\n```\n\n## Usage\n\nYour iframe must use a YouTube embed URL with both `enablejsapi=1` and `origin`.\n\n```html\n<iframe\n  id=\"hero-video\"\n  src=\"https://www.youtube.com/embed/abc123xyz89?enablejsapi=1&origin=https://example.com\"\n  allow=\"autoplay; fullscreen\"\n></iframe>\n```\n\n```ts\nimport analytics from '@analytics-sdk/core';\nimport { youtubeAdapter } from '@analytics-sdk/adapter-youtube';\n\nanalytics.init({\n  siteToken: 'sk_live_abc12345',\n  endpoint: 'https://ingest.example.com/api/v1/events',\n  adapters: [youtubeAdapter()],\n});\n```\n\n`youtubeAdapter()` automatically discovers supported YouTube embed iframes already on the page. If you want to target one specific iframe, pass it explicitly:\n\n```ts\nconst iframe = document.querySelector<HTMLIFrameElement>('#hero-video');\n\nif (iframe !== null) {\n  analytics.init({\n    siteToken: 'sk_live_abc12345',\n    endpoint: 'https://ingest.example.com/api/v1/events',\n    adapters: [youtubeAdapter({ iframe })],\n  });\n}\n```\n\nThe adapter emits the core media event types:\n\n- `media_play`\n- `media_pause`\n- `media_seek`\n- `media_progress`\n- `media_buffer`\n- `media_complete`\n\nProgress milestones default to `25`, `50`, `75`, and `90` percent and can be customised:\n\n```ts\nyoutubeAdapter({\n  iframe,\n  progressPercentages: [10, 25, 50, 75, 95],\n  progressPollMs: 1000,\n  seekThresholdSeconds: 2,\n});\n```\n\n`seekThresholdSeconds` controls how large a jump must be before the adapter emits\n`media_seek`.\n","readmeFilename":"README.md"}