multi_embed_player 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/.github/workflows/build-and-deploy.yml +44 -0
  2. package/.gitmodules +3 -0
  3. package/CLAUDE.md +92 -0
  4. package/README.md +0 -24
  5. package/add_types.sh +61 -0
  6. package/browserExtention/chrome/background.js +55 -0
  7. package/browserExtention/chrome/extention.json +1 -0
  8. package/browserExtention/chrome/liteplayer.js +26439 -0
  9. package/browserExtention/chrome/manifest.json +31 -0
  10. package/browserExtention/chrome/player-selector.js +1854 -0
  11. package/browserExtention/firefox/background.js +27 -0
  12. package/browserExtention/firefox/extention.json +1 -0
  13. package/browserExtention/firefox/liteplayer.js +26439 -0
  14. package/browserExtention/firefox/manifest.json +19 -0
  15. package/browserExtention/firefox/player-selector.js +1854 -0
  16. package/documents/.hugo_build.lock +0 -0
  17. package/documents/archetypes/default.md +5 -0
  18. package/documents/assets/jsconfig.json +11 -0
  19. package/documents/content/docs/install.md +103 -0
  20. package/documents/content/docs/quickstart.md +51 -0
  21. package/documents/content/docs/reference/HTML.md +31 -0
  22. package/documents/content/docs/reference/_index.md +10 -0
  23. package/documents/content/docs/reference/error_code.md +23 -0
  24. package/documents/content/docs/reference/iframe_api.md +737 -0
  25. package/documents/content/docs/reference/iframe_class.md +230 -0
  26. package/documents/content/docs/reference/multi_embed_player_class.md +113 -0
  27. package/documents/content/docs/reference/reserved_words.md +71 -0
  28. package/documents/content/docs/usage/GDPR_mode.md +77 -0
  29. package/documents/content/docs/usage/_index.md +10 -0
  30. package/documents/content/docs/usage/custom_playlist.md +239 -0
  31. package/documents/content/docs/usage/embed_api.md +163 -0
  32. package/documents/content/docs/usage/embed_various_service.md +81 -0
  33. package/documents/content/docs/usage/thumbnail_click.md +57 -0
  34. package/documents/go.mod +8 -0
  35. package/documents/go.sum +14 -0
  36. package/documents/hugo.toml +18 -0
  37. package/documents/layouts/partials/docs/sidebar.html +117 -0
  38. package/documents/layouts/partials/landing/features.html +47 -0
  39. package/documents/layouts/robots.txt +4 -0
  40. package/documents/static/_headers +7 -0
  41. package/documents/static/localStorageCheck.html +27 -0
  42. package/documents/static/no_extention.json +1 -0
  43. package/example.html +27 -0
  44. package/extention.json +1 -0
  45. package/icon/video_not_found.odg +0 -0
  46. package/icon/video_not_found.svgz +0 -0
  47. package/iframe_api/bilibili.ts +1095 -0
  48. package/iframe_api/niconico.ts +429 -0
  49. package/iframe_api/soundcloud.ts +450 -0
  50. package/iframe_api/youtube.ts +311 -0
  51. package/multi_embed_player.ts +989 -0
  52. package/package.json +10 -41
  53. package/player_api_gate/bilibili-api-gate/cgi/cpp/bilibili-api-gate-cgi.cpp +281 -0
  54. package/player_api_gate/bilibili-api-gate/cgi/go/src.go +46 -0
  55. package/player_api_gate/bilibili-api-gate/cloudflare_workers/package-lock.json +1356 -0
  56. package/player_api_gate/bilibili-api-gate/cloudflare_workers/package.json +12 -0
  57. package/player_api_gate/bilibili-api-gate/cloudflare_workers/src/index.js +50 -0
  58. package/player_api_gate/bilibili-api-gate/cloudflare_workers/wrangler.toml +3 -0
  59. package/player_api_gate/iframe-api-ts/.editorconfig +12 -0
  60. package/player_api_gate/iframe-api-ts/.prettierrc +6 -0
  61. package/player_api_gate/iframe-api-ts/package-lock.json +3054 -0
  62. package/player_api_gate/iframe-api-ts/package.json +18 -0
  63. package/player_api_gate/iframe-api-ts/src/bilibili.ts +49 -0
  64. package/player_api_gate/iframe-api-ts/src/index.ts +35 -0
  65. package/player_api_gate/iframe-api-ts/src/niconico.ts +95 -0
  66. package/player_api_gate/iframe-api-ts/src/soundcloud.ts +38 -0
  67. package/player_api_gate/iframe-api-ts/src/types.ts +115 -0
  68. package/player_api_gate/iframe-api-ts/src/url-proxy.ts +29 -0
  69. package/player_api_gate/iframe-api-ts/src/utils.ts +82 -0
  70. package/player_api_gate/iframe-api-ts/src/youtube.ts +41 -0
  71. package/player_api_gate/iframe-api-ts/test/bilibili.spec.ts +47 -0
  72. package/player_api_gate/iframe-api-ts/test/env.d.ts +3 -0
  73. package/player_api_gate/iframe-api-ts/test/index.spec.ts +59 -0
  74. package/player_api_gate/iframe-api-ts/test/niconico.spec.ts +55 -0
  75. package/player_api_gate/iframe-api-ts/test/soundcloud.spec.ts +55 -0
  76. package/player_api_gate/iframe-api-ts/test/tsconfig.json +8 -0
  77. package/player_api_gate/iframe-api-ts/test/url-proxy.spec.ts +46 -0
  78. package/player_api_gate/iframe-api-ts/test/youtube.spec.ts +45 -0
  79. package/player_api_gate/iframe-api-ts/tsconfig.json +45 -0
  80. package/player_api_gate/iframe-api-ts/vitest.config.mts +11 -0
  81. package/player_api_gate/iframe-api-ts/worker-configuration.d.ts +5768 -0
  82. package/player_api_gate/iframe-api-ts/wrangler.jsonc +47 -0
  83. package/player_api_gate/iframe_api/.editorconfig +13 -0
  84. package/player_api_gate/iframe_api/.prettierrc +6 -0
  85. package/player_api_gate/iframe_api/package-lock.json +1307 -0
  86. package/player_api_gate/iframe_api/package.json +12 -0
  87. package/player_api_gate/iframe_api/src/bilibili_api.js +60 -0
  88. package/player_api_gate/iframe_api/src/index.js +47 -0
  89. package/player_api_gate/iframe_api/src/niconico_api.js +112 -0
  90. package/player_api_gate/iframe_api/src/soundcloud_api.js +57 -0
  91. package/player_api_gate/iframe_api/src/url_proxy.js +28 -0
  92. package/player_api_gate/iframe_api/src/youtube_api.js +44 -0
  93. package/player_api_gate/iframe_api/wrangler.toml +51 -0
  94. package/player_api_gate/niconico-imager/cgi/go/src.go +74 -0
  95. package/player_api_gate/niconico-imager/cloudflare_workers/package-lock.json +2175 -0
  96. package/player_api_gate/niconico-imager/cloudflare_workers/package.json +12 -0
  97. package/player_api_gate/niconico-imager/cloudflare_workers/src/index.js +78 -0
  98. package/player_api_gate/niconico-imager/cloudflare_workers/wrangler.toml +3 -0
  99. package/test_script.html +172 -0
  100. package/tsconfig.json +36 -0
  101. package/dist/iframe_api/bilibili.d.ts +0 -91
  102. package/dist/iframe_api/bilibili.d.ts.map +0 -1
  103. package/dist/iframe_api/bilibili.js +0 -451
  104. package/dist/iframe_api/bilibili.js.map +0 -1
  105. package/dist/iframe_api/index.d.ts +0 -6
  106. package/dist/iframe_api/index.d.ts.map +0 -1
  107. package/dist/iframe_api/index.js +0 -8
  108. package/dist/iframe_api/index.js.map +0 -1
  109. package/dist/iframe_api/niconico.d.ts +0 -42
  110. package/dist/iframe_api/niconico.d.ts.map +0 -1
  111. package/dist/iframe_api/niconico.js +0 -181
  112. package/dist/iframe_api/niconico.js.map +0 -1
  113. package/dist/iframe_api/soundcloud.d.ts +0 -80
  114. package/dist/iframe_api/soundcloud.d.ts.map +0 -1
  115. package/dist/iframe_api/soundcloud.js +0 -188
  116. package/dist/iframe_api/soundcloud.js.map +0 -1
  117. package/dist/iframe_api/youtube.d.ts +0 -133
  118. package/dist/iframe_api/youtube.d.ts.map +0 -1
  119. package/dist/iframe_api/youtube.js +0 -278
  120. package/dist/iframe_api/youtube.js.map +0 -1
  121. package/dist/multi_embed_player.d.ts +0 -48
  122. package/dist/multi_embed_player.d.ts.map +0 -1
  123. package/dist/multi_embed_player.js +0 -318
  124. package/dist/multi_embed_player.js.map +0 -1
  125. package/dist/types.d.ts +0 -126
  126. package/dist/types.d.ts.map +0 -1
  127. package/dist/types.js +0 -22
  128. package/dist/types.js.map +0 -1
@@ -0,0 +1,117 @@
1
+ <!-- sidebar-wrapper -->
2
+ <nav id="sidebar" class="sidebar-wrapper">
3
+ <div class="sidebar-brand">
4
+ <!--I change the link to /docs/ because I want to link to top document page.-->
5
+ <a href='/docs/' aria-label="HomePage" alt="HomePage">
6
+ {{ with resources.Get "images/logos/logo.svg" }}
7
+ {{ .Content | safeHTML }}
8
+ {{ end }}
9
+ </a>
10
+ </div>
11
+ <div class="sidebar-content" style="height: calc(100% - 131px);">
12
+ <ul class="sidebar-menu">
13
+ {{ $currentPage := . -}}
14
+ {{ $section := $currentPage.Section -}}
15
+ {{ range (where .Site.Sections.ByWeight "Section" "in" $section) }}
16
+ {{ $child_pages := union .Sections .Pages }}
17
+ {{ range $child_pages.ByWeight }}
18
+ {{ if or (.Sections) (.Pages) }}
19
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
20
+ <li class="sidebar-dropdown {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }} {{ if $active }}current active{{ end }}">
21
+ <button class="btn">
22
+ {{ if eq .Site.Params.docs.sidebarIcons true -}}
23
+ <i class="material-icons me-2">{{- .Params.icon | default "notes" }}</i>
24
+ {{ end }}
25
+ {{- .Title }}
26
+ </button>
27
+ <div class="sidebar-submenu {{ if $active }}d-block{{ end }}">
28
+ <ul>
29
+ {{ range .Pages }}
30
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
31
+ {{ if .IsSection }}
32
+ <li class="sidebar-dropdown nested {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }} {{ if $active }}current active{{ end }}">
33
+ <button class="btn">
34
+ {{ if eq .Site.Params.docs.sidebarIcons true -}}
35
+ <!-- <span class="material-icons me-2">{{- .Params.icon }}</span> -->
36
+ {{ end }}
37
+ {{- .Title }}
38
+ </button>
39
+ <div class="sidebar-submenu {{ if $active }}d-block{{ end }}">
40
+ <ul>
41
+ {{ range .Pages }}
42
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
43
+ {{ if .IsSection }}
44
+ <li class="sidebar-dropdown nested {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }} {{ if $active }}current active{{ end }}">
45
+ <button class="btn">
46
+ {{ if eq .Site.Params.docs.sidebarIcons true -}}
47
+ <!-- <span class="material-icons me-2">{{- .Params.icon }}</span> -->
48
+ {{ end }}
49
+ {{- .Title }}
50
+ </button>
51
+ <div class="sidebar-submenu {{ if $active }}d-block{{ end }}">
52
+ <ul>
53
+ {{ range .Pages }}
54
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
55
+ {{ if .IsSection }}
56
+ <li class="sidebar-dropdown nested {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }} {{ if $active }}current active{{ end }}">
57
+ <button class="btn">
58
+ {{ if eq .Site.Params.docs.sidebarIcons true -}}
59
+ <!-- <span class="material-icons me-2">{{- .Params.icon }}</span> -->
60
+ {{ end }}
61
+ {{- .Title }}
62
+ </button>
63
+ <div class="sidebar-submenu {{ if $active }}d-block{{ end }}">
64
+ <ul>
65
+ {{ range .Pages }}
66
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
67
+ <li class="{{ if $active }}current{{ end }} {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }}"><a class="sidebar-nested-link" href="{{ .Permalink }}">{{ .Title }}</a></li>
68
+ {{ end }}
69
+ </ul>
70
+ </div>
71
+ </li>
72
+ {{ else }}
73
+ <li class="{{ if $active }}current{{ end }} {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }}"><a class="sidebar-nested-link" href="{{ .Permalink }}">{{ .Title }}</a></li>
74
+ {{ end }}
75
+ {{ end }}
76
+ </ul>
77
+ </div>
78
+ </li>
79
+ {{ else }}
80
+ <li class="{{ if $active }}current{{ end }} {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }}"><a class="sidebar-nested-link" href="{{ .Permalink }}">{{ .Title }}</a></li>
81
+ {{ end }}
82
+ {{ end }}
83
+ </ul>
84
+ </div>
85
+ </li>
86
+ {{ else }}
87
+ <li class="{{ if $active }}current{{ end }} {{ if eq .Site.Params.docs.sidebarIcons true -}}{{ else }}no-icon{{ end }}"><a class="sidebar-nested-link" href="{{ .Permalink }}">{{ .Title }}</a></li>
88
+ {{ end }}
89
+ {{ end }}
90
+ </ul>
91
+ </div>
92
+ </li>
93
+ {{ else }}
94
+ {{ $active := in $currentPage.RelPermalink .RelPermalink }}
95
+ <li class="{{ if $active }}current{{ end }}">
96
+ <a class="sidebar-root-link" href="{{ .Permalink }}">
97
+ {{ if eq .Site.Params.docs.sidebarIcons true -}}
98
+ <i class="material-icons me-2">{{ .Params.icon }}</i>
99
+ {{ end }}
100
+ {{ .Title }}
101
+ </a>
102
+ </li>
103
+ {{ end }}
104
+ {{ end }}
105
+ {{ end }}
106
+ </ul>
107
+ <!-- sidebar-menu -->
108
+ </div>
109
+ <!-- Sidebar Footer -->
110
+ <ul class="sidebar-footer list-unstyled mb-0">
111
+ <!-- <li class="list-inline-item mb-0">
112
+ <a href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#lang-selector-popup" class="btn btn-primary m-1">Language</a>
113
+ </li> -->
114
+ </ul>
115
+ <!-- Sidebar Footer -->
116
+ </nav>
117
+ <!-- sidebar-wrapper -->
@@ -0,0 +1,47 @@
1
+ {{ if .Site.Data.landing.features.enable }}
2
+ <!-- Features Start -->
3
+ <!--I have no idea to redirect to /docs/ from top page. So I use meta tag and refresh.-->
4
+ <link rel="canonical" href="/docs/">
5
+ <meta http-equiv="refresh" content="0; url=/docs/">
6
+
7
+ <div class="container mt-100 mt-60">
8
+ <div class="row justify-content-center">
9
+ <div class="col-12 text-center">
10
+ <div class="section-title">
11
+ {{ if .Site.Data.landing.features.title }}
12
+ <h4 class="title fw-bold mb-4">{{ .Site.Data.landing.features.title }}</h4>
13
+ {{ end }}
14
+ {{ if .Site.Data.landing.features.subtitle }}
15
+ <p class="text-muted para-desc mb-4 pb-2 mx-auto">{{ .Site.Data.landing.features.subtitle | markdownify }}</p>
16
+ {{ end }}
17
+ </div>
18
+ </div><!--end col-->
19
+ </div><!--end row-->
20
+
21
+ <div class="row">
22
+ <div class="col-lg-12">
23
+ <div class="row">
24
+ {{ range .Site.Data.landing.features.items }}
25
+ <div class="col-md-4 col-12">
26
+ <div class="d-flex features feature-primary p-3">
27
+ <div class="{{ if .icon }}icon{{ else }}no-icon{{ end }} text-center rounded-3 text-primary me-3">
28
+ <i class="material-icons align-middle h4 mb-0">{{ .icon }}</i>
29
+ </div>
30
+ <div class="flex-1">
31
+ <h4 class="title">{{ .title }}</h4>
32
+ <p class="text-muted para mb-0">{{ .description | markdownify }}</p>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <!--end col-->
37
+ {{ end }}
38
+ </div>
39
+ <!--end row-->
40
+ </div>
41
+ <!--end col-->
42
+ </div>
43
+ <!--end row-->
44
+ </div>
45
+ <!--end container-->
46
+ <!-- features End -->
47
+ {{ end }}
@@ -0,0 +1,4 @@
1
+ User-agent: *
2
+ Disallow:
3
+
4
+ Sitemap: {{ .Site.BaseURL }}sitemap.xml
@@ -0,0 +1,7 @@
1
+ #Add cors header for all content
2
+ /*
3
+ Access-Control-Allow-Origin: *
4
+
5
+ #exclude crawling site if netlify
6
+ https://multi-embed-player.netlify.app/*
7
+ X-Robots-Tag: noindex
@@ -0,0 +1,27 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ </head>
6
+ <body>
7
+ <script>
8
+ (async function(){
9
+ let data;
10
+ try{
11
+ data = (await(await fetch(`${location.origin}/no_extention.json`)).json())["extention_status"];
12
+ }
13
+ catch{
14
+ data = {extention_status:false};
15
+ }
16
+ try{
17
+ localStorage.setItem('test key', 'test value');
18
+ window.parent.postMessage({main:'can use localStorage',extention:data,localStorageUsable:true}, '*');
19
+ }
20
+ catch{
21
+ console.log("localstorage error");
22
+ window.parent.postMessage({main:'error on use localStorage',extention:data,localStorageUsable:false}, '*');
23
+ }
24
+ })();
25
+ </script>
26
+ </body>
27
+ </html>
@@ -0,0 +1 @@
1
+ {"extention_status":false}
package/example.html ADDED
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>example multi embed player</title>
8
+ <link rel="stylesheet" href="multi_embed_player.css">
9
+ <style>
10
+ multi-embed-player{
11
+ width: 480px;
12
+ height: 270px;
13
+ }
14
+ </style>
15
+ </head>
16
+ <body>
17
+ <!-- <script src="https://cdn.jsdelivr.net/npm/multi_embed_player@3/dist/multi_embed_player.js"></script> -->
18
+ <script src="http://localhost:5500/dist/multi_embed_player.js"></script>
19
+ <multi-embed-player videoid="_NC_pqMt5rY" service="youtube" type="thumbnail-click" for="mep"></multi-embed-player>
20
+ <multi-embed-player videoid="XpgSrULHibg" service="youtube" type="thumbnail-click" for="mep" start="33" end="55"></multi-embed-player>
21
+ <multi-embed-player videoid="sm41278225" service="niconico" subService="youtube" subVideoid="cIbqy3-glos" type="thumbnail-click" for="mep"></multi-embed-player>
22
+ <multi-embed-player videoid="sm41265645" service="niconico" subService="youtube" subVideoid="_JgGDGqFXrk" type="embed" start="45.5" end="56.2"></multi-embed-player>
23
+ <multi-embed-player videoid="BV19a411o78L" service="bilibili" subVideoid="ZC0Ltj7a3tw" subService="youtube" type="thumbnail-click" for="mep"></multi-embed-player>
24
+ <multi-embed-player videoid="BV1n3411976a" service="bilibili" type="thumbnail-click" for="mep"></multi-embed-player>
25
+ <multi-embed-player id="mep" type="player"></multi-embed-player>
26
+ </body>
27
+ </html>
package/extention.json ADDED
@@ -0,0 +1 @@
1
+ {"extention_status":true}
Binary file
Binary file