MCPcopy
hub / github.com/NUKnightLab/TimelineJS3 / createMedia

Method createMedia

src/js/media/types/TikTok.js:35–95  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

33 }
34
35 createMedia() {
36 var self = this;
37
38 // Use TikTok oEmbed API
39 var api_url = "https://www.tiktok.com/oembed?url=" + encodeURIComponent(this.clean_url);
40
41 ajax({
42 type: 'GET',
43 url: api_url,
44 dataType: 'json',
45 success: function(data) {
46 self.oembed_response = data;
47
48 // Create content container
49 self._el.content_item = self.domCreate("div", "tl-media-item tl-media-tiktok", self._el.content);
50
51 // If we have thumbnail, show that with a link to TikTok
52 if (data.thumbnail_url) {
53 // Link
54 self._el.content_link = self.domCreate("a", "", self._el.content_item);
55 self._el.content_link.href = self.clean_url;
56 self._el.content_link.target = "_blank";
57 self._el.content_link.setAttribute('rel', 'noopener');
58
59 // Thumbnail image
60 self._el.content_image = self.domCreate("img", "tl-media-image tl-media-shadow", self._el.content_link);
61 self._el.content_image.src = data.thumbnail_url;
62
63 if (self.data.alt) {
64 self._el.content_image.alt = self.data.alt;
65 } else if (data.title) {
66 self._el.content_image.alt = unhtmlify(data.title);
67 } else {
68 self._el.content_image.alt = "TikTok video by @" + self.username;
69 }
70
71 // Add play icon overlay
72 self._el.play_overlay = self.domCreate("div", "tl-media-tiktok-play-overlay", self._el.content_link);
73 self._el.play_icon = self.domCreate("span", "", self._el.play_overlay);
74
75 // Media loaded event
76 self._el.content_image.addEventListener('load', function(e) {
77 self.onMediaLoaded();
78 });
79
80 self.onLoaded();
81
82 // Get and display metadata (caption/credit)
83 self._getMeta();
84 } else {
85 // Fallback: use HTML embed but with constraints
86 self._el.content_item.innerHTML = data.html || '';
87 self.onLoaded();
88 }
89 },
90 error: function(xhr, type) {
91 var error_text = self._("tiktok_invalidurl_err");
92 self.loadErrorDisplay(error_text);

Callers 1

_loadMediaMethod · 0.95

Calls 8

unhtmlifyFunction · 0.90
domCreateMethod · 0.80
addEventListenerMethod · 0.80
onMediaLoadedMethod · 0.80
loadErrorDisplayMethod · 0.80
onLoadedMethod · 0.45
_getMetaMethod · 0.45
_Method · 0.45

Tested by

no test coverage detected