bsky-app/__tests__/lib/__mocks__/youtubeChannelHtml.ts

64 lines
1.2 MiB
TypeScript
Raw Normal View History

Merge main into the Web PR (#230) * Update to RN 71.1.0 (#100) * Update to RN 71 * Adds missing lint plugin * Add missing native changes * Bump @atproto/api@0.0.7 (#112) * Image not loading on swipe (#114) * Adds prefetching to images * Adds image prefetch * bugfix for images not showing on swipe * Fixes prefetch bug * Update src/view/com/util/PostEmbeds.tsx --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com> * Fixes to session management (#117) * Update session-management to solve incorrectly dropped sessions * Reset the nav on account switch * Reset the feed on me.load() * Update tests to reflect new account-switching behavior * Increase max image resolutions and sizes (#118) * Slightly increase the hitslop for post controls * Fix character counter color in dark mode * Update login to use new session.create api, which enables email login (close #93) (#119) * Replaces the alert with dropdown for profile image and banner (#123) * replaces the alert with dropdown for profile image and banner * lint * Fix to ordering of images in the embed grid (#121) * Add explicit link-embed controls to the composer (#120) * Add explicit link-embed controls * Update the target rez/size of link embed thumbs * Remove the alert before publishing without a link card * [Draft] Fixes image failing on reupload issue (#128) * Fixes image failing on reupload issue * Use tmp folder instead of documents * lint * Image performance improvements (#126) * Switch out most images for FastImage * Add image loading placeholders * Fix tests * Collection of fixes to list rendering (#127) * Fix bug that caused endless spinners in profile feeds * Bundle fetches of suggested actors into one update * Fixes to suggested follow rendering * Fix missing replacement of flex:1 to height:100 * Fixes to navigation swipes (#129) * Nav swipe: increase the distance traveled in response to gesture movement. This causes swipes to feel faster and more responsive. * Fix: fully clamp the swipe against the edge * Improve the performance of swipes by skipping the interaction manager * Adds dark mode to the edit screen (#130) * Adds dark mode to edit screen * lint * lint * lint * Reduce render cost of post controls and improve perceived responsiveness (#132) * Move post control animations into conditional render and increase perceived responsiveness * Remove log * Adds dark mode to the dropdown (#131) * Adds dark mode to the bottom sheet * Make background button lighter (like before) * lint * Fix bug in lightbox rendering (#133) * Fix layout in onboarding to not overflow the footer * Configure feed FlatList (removeClippedSubviews=true) to improve scroll performance (#136) * Disable like/repost animations to see if theyre causing #135 (#137) * Composer: mention tagging now works in middle of text (close #105) (#139) * Implement account deletion (#141) * Fix photo & camera permission management (#140) * Check photo & camera perms and alert the user if not available (close #64) - Adds perms checks with a prompt to update settings if needed - Moves initial access of photos in the composer so that the initial prompt occurs at an intuitive time. * Add react-native-permissions test mock * Fix issue causing multiple access requests * Use longer var names * Update podfile.lock * Lint fix * Move photo perm request in composer to the gallery btn instead of when the carousel is opened * Adds more tracking all around the app (#142) * Adds more tracking all around the app * more events * lint * using better analytics naming * missed file * more fixes * Calculate image aspect ratio on load (#146) * Calculate image aspect ratio on load * Move aspect ratio bounds to constants * Adds detox testing and instructions (#147) * Adds detox testing and instructions * lint * lint * Error cleanup (close #79) (#148) * Avoid surfacing errors to the user when it's not critical * Remove now-unused GetAssertionsView * Apply cleanError() consistently * Give a better error message for Upstream Failures (http status 502) * Hide errors in notifications because they're not useful * More e2e tests (create account) (#150) * Adds respots under the 'post' tab under profile (#158) * Adds dark mode to delete account screen (#159) * 87 dark mode edit profile (#162) * Adds dark mode to delete account screen * Adds one more missed darkmode * more fixes * Remove fallback gradient on external links without thumbs (#164) * Remove fallback gradient on external links without thumbs * Remove fallback gradient on external links without thumbs in the composer preview * Fix refresh behavior around a series of models (repost, graph, vote) (#163) * Fix refresh behavior around a series of models (repost, graph, vote) * Fix cursor behavior in reposted-by view * Fixes issue where retrying on image upload fails (#166) * Fixes issue where retrying on image upload fails * Lint, longer test time * Longer waitfor time in tests * even longer timeout * longer timeout * missed file * Update src/view/com/composer/ComposePost.tsx Co-authored-by: Paul Frazee <pfrazee@gmail.com> * Update src/view/com/composer/ComposePost.tsx Co-authored-by: Paul Frazee <pfrazee@gmail.com> --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com> * 154 cached image profile (#167) * Fixes issue where retrying on image upload fails * Lint, longer test time * Longer waitfor time in tests * even longer timeout * longer timeout * missed file * Fixes image cache error on second try for profile screen * lint * lint * lint * Refactor session management to use a new "Agent" API (#165) * Add the atp-agent implementation (temporarily in this repo) * Rewrite all session & API management to use the new atp-agent * Update tests for the atp-agent refactor * Refactor management of session-related state. Includes: - More careful management of when state is cleared or fetched - Debug logging to help trace future issues - Clearer APIs overall * Bubble session-expiration events to the user and display a toast to explain * Switch to the new @atproto/api@0.1.0 * Minor aesthetic cleanup in SessionModel * Wire up ReportAccount and ReportPost (#168) * Fixes embeds for youtube channels (#169) * Bump app ios version to 1.1 (needed after app store submission) * Fix potential issues with promise guards when an error occurs (#170) * Refactor models to use bundleAsync and lock regions (#171) * Fix to an edge case with feed re-ordering for threads (#172) * 151 fix youtube channel embed (#173) * Fixes embeds for youtube channels * Tests for youtube extract meta * lint * Add 'doesnt use non-exempt encryption' to ios config * Rework the search UI and add (#174) * Add search tab and move icon to footer * Remove subtitles from view header * Remove unused code * Clean up UI of search screen * Search: give better user feedback to UI state and add a cancel button * Add WhoToFollow section to search * Add a temporary SuggestedPosts solution using the patented 'bsky team algo' * Trigger reload of suggested content in search on open * Wait five min between reloading discovery content * Reduce weight of solid search icon in footer * Fix lint * Fix tests * 151 feat youtube embed iframe (#176) * youtube embed iframe temp commit * Fixes styling and code cleanup * lint * Now clicking between the pause and settings button doesn't trigger the parent * use modest branding (less yt logos) * Stop playing the video once there's a navigation event * Make sure the iframe is unmounted on any navigation event * fixes tests * lint * Add scroll-to-top for all screens (#177) * Adds hardcoded suggested list (#178) * Adds hardcoded suggested list * Update suggested-actors-view to support page sizes smaller than the hardcoded list --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com> * more robust centering of the play button (#181) Co-authored-by: Aryan Goharzad <arrygoo@gmail.com> * Bundle of UI modifications (#175) * Adjust visual balance of SuggestedPosts and WhoToFollow * Fix bug in the discovery load trigger * Adjust search header aesthetic and have it scroll away * More visual balance tweaks on the search page * Even more visual balance tweaks on the search page * Hide the footer on scroll in search * Ditch the composer prompt buttons in the home feed * Center the view header title * Hide header on scroll on the home feed * Fix e2e tests * Fix home feed positioning (closes #189) (#195) * Fix home feed positioning for floating header * Fix positioning of errors in home feed * Fix lint * Don't show new-content notification for reposts (close #179) (#197) * Show the splash screen during session resumption (close #186) (#199) * Fix to suggested follows: chunk the hardcoded fetches to 25 at a time (close #196) (#198) * UI updates to the floating action button (#201) * Update FAB to use a plus icon and not drop shadow * Update FAB positioning to be more consistent in different shell modes * Animate the FAB's repositioning * Remove the 'loading' placeholder from images as it degraded feed perf (#202) * Remove the 'loading' placeholder from images as it degraded feed perf * Remove references * Fix RN bug that causes home feed not to load more; also fix home feed load view. (#208) RN has a bug where rendering a flatlist with an empty array appears to break its virtual list windowing behaviors. See https://stackoverflow.com/a/67873596 * Only give the loading spinner on the home feed during PTR (#207) (cherry picked from commit b7a5da12fdfacef74873b5cf6d75f20d259bde0e) * Implement our own lifecycle tracking to ensure it never fires while the app is backgrounded (close #193) (#211) * Push notification fixes (#210) * Fix to when screen analytics events are firing * Fix: dont trigger update state when backgrounded * Small fix to notifee API usage * Fix: properly load notification info for push card * Add feedback link to main menu (close #191) (#212) * Add "follows you" information and sync follow state between views (#215) * Bump @atproto/api@0.1.2 and update API usage * Add 'follows you' pill to profile header (close #110) * Add 'follows you' to followers and follows (close #103) * Update reposted-by and liked-by views to use the same components as followers and following * Create a local follows cache MyFollowsModel to keep views in sync (close #205) * Add incremental hydration to the MyFollows model * Fix tests * Update deps * Fix lint * Fix to paginated fetches * Fix reference * Fix potential state-desync issue * Fixes to notifications (#216) * Improve push-notification for follows * Refresh notifications on screen open (close #214) * Avoid showing loader more than needed in post threads * Refactor notification polling to handle view-state more effectively * Delete a bunch of tests taht werent adding value * Remove the accounts integration test; we'll use the e2e test instead * Load latest in notifications when the screen is open rather than full refresh * Randomize hard-coded suggested follows (#226) * Ensure follows are loaded before filtering hardcoded suggestions * Randomize hard-coded suggested profiles (close #219) * Sanitizes posts on publish and render (#217) * Sanatizes posts on publish and render * lint * lint and added sanitize to thread view as well * adjusts indices based on replaced text * Woops, fixes a bug * bugfix + cleanup * comment * lint * move sanitize text to later in the flow * undo changes to compose post * Add RichText library building upon the sanitizePost library method * Add lodash.clonedeep dep * Switch to RichText processing on record load & render * Fix lint --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com> * A group of notifications fixes (#227) * Fix: don't group together notifications that can't visually be grouped (close #221) * Mark all notifications read on PTR * Small optimization: useCallback and useMemo in posts feed * Add loading spinner to footer of notifications (close #222) * Fix to scrolling to posts within a thread (#228) * Fix: render the entire thread at start so that scrollToIndex works always (close #270) * Visual fixes to thread 'load more' * A few small perf improvements to thread rendering * Fix lint * 1.2 * Remove unused logger lib * Remove state-mock * Type fixes * Reorganize the folder structure for lib and switch to typescript path aliases * Move build-flags into lib * Move to the state path alias * Add view path alias * Fix lint * iOS build fixes * Wrap analytics in native/web splitter and re-enable in all view code * Add web version of react-native-webview * Add web split for version number * Fix BlurView import for web * Add web split for fastimage * Create web split for permissions lib * Fix for web high priority images --------- Co-authored-by: Aryan Goharzad <arrygoo@gmail.com>
2023-02-22 21:23:57 +01:00
export const youtubeChannelHtml = `
<!DOCTYPE html><html style="font-size: 10px;font-family: Roboto, Arial, sans-serif;" lang="en" dark system-icons typography typography-spacing darker-dark-theme darker-dark-theme-deprecate><head><meta http-equiv="origin-trial" content="AlgsH67ctYlMR3JYAxEnGfvsoFo41AMqAg6wRHHXOpWAfD54ZCfTPBclxnFT4Gc8IUX4pq6Xfo0esDuOt+WH3wIAAABteyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJQcml2YWN5U2FuZGJveEFkc0FQSXMiLCJleHBpcnkiOjE2ODA2NTI3OTksImlzU3ViZG9tYWluIjp0cnVlfQ=="/><script nonce="nopnosk9VoEiau3Xtg_3uQ">var ytcfg={d:function(){return window.yt&&yt.config_||ytcfg.data_||(ytcfg.data_={})},get:function(k,o){return k in ytcfg.d()?ytcfg.d()[k]:o},set:function(){var a=arguments;if(a.length>1)ytcfg.d()[a[0]]=a[1];else for(var k in a[0])ytcfg.d()[k]=a[0][k]}};
window.ytcfg.set('EMERGENCY_BASE_URL', '\/error_204?t\x3djserror\x26level\x3dERROR\x26client.name\x3d1\x26client.version\x3d2.20230201.01.00');</script><script nonce="nopnosk9VoEiau3Xtg_3uQ">(function(){window.yterr=window.yterr||true;window.unhandledErrorMessages={};window.unhandledErrorCount=0;
window.onerror=function(msg,url,line,columnNumber,error){var err;if(error)err=error;else{err=new Error;err.stack="";err.message=msg;err.fileName=url;err.lineNumber=line;if(!isNaN(columnNumber))err["columnNumber"]=columnNumber}var message=String(err.message);if(!err.message||message in window.unhandledErrorMessages||window.unhandledErrorCount>=5)return;window.unhandledErrorCount+=1;window.unhandledErrorMessages[message]=true;var img=new Image;window.emergencyTimeoutImg=img;img.onload=img.onerror=function(){delete window.emergencyTimeoutImg};
var combinedLineAndColumn=err.lineNumber;if(!isNaN(err["columnNumber"]))combinedLineAndColumn+=":"+err["columnNumber"];var stack=err.stack||"";var values={"msg":message,"type":err.name,"client.params":"unhandled window error","file":err.fileName,"line":combinedLineAndColumn,"stack":stack.substr(0,500)};var thirdPartyScript=!err.fileName||err.fileName==="<anonymous>"||stack.indexOf("extension://")>=0;var replaced=stack.replace(/https:\/\/www.youtube.com\//g,"");if(replaced.match(/https?:\/\/[^/]+\//))thirdPartyScript=
true;else if(stack.indexOf("trapProp")>=0&&stack.indexOf("trapChain")>=0)thirdPartyScript=true;else if(message.indexOf("redefine non-configurable")>=0)thirdPartyScript=true;var baseUrl=window["ytcfg"].get("EMERGENCY_BASE_URL","https://www.youtube.com/error_204?t=jserror&level=ERROR");var unsupported=message.indexOf("window.customElements is undefined")>=0;if(thirdPartyScript||unsupported)baseUrl=baseUrl.replace("level=ERROR","level=WARNING");var parts=[baseUrl];for(var key in values){var value=values[key];
if(value)parts.push(key+"="+encodeURIComponent(value))}img.src=parts.join("&")};
(function(){function _getExtendedNativePrototype(tag){var p=this._nativePrototypes[tag];if(!p){p=Object.create(this.getNativePrototype(tag));var p$=Object.getOwnPropertyNames(window["Polymer"].Base);for(var i=0,n=void 0;i<p$.length&&(n=p$[i]);i++)if(!window["Polymer"].BaseDescriptors[n])try{p[n]=window["Polymer"].Base[n]}catch(e){throw new Error("Error while copying property: "+n+". Tag is "+tag);}try{Object.defineProperties(p,window["Polymer"].BaseDescriptors)}catch(e$0){throw new Error("Polymer define property failed for "+
Object.keys(p));}this._nativePrototypes[tag]=p}return p}function handlePolymerError(msg){window.onerror(msg,window.location.href,0,0,new Error(Array.prototype.join.call(arguments,",")))}var origPolymer=window["Polymer"];var newPolymer=function(config){if(!origPolymer._ytIntercepted&&window["Polymer"].Base){origPolymer._ytIntercepted=true;window["Polymer"].Base._getExtendedNativePrototype=_getExtendedNativePrototype;window["Polymer"].Base._error=handlePolymerError;window["Polymer"].Base._warn=handlePolymerError}return origPolymer.apply(this,
arguments)};var origDescriptor=Object.getOwnPropertyDescriptor(window,"Polymer");Object.defineProperty(window,"Polymer",{set:function(p){if(origDescriptor&&origDescriptor.set&&origDescriptor.get){origDescriptor.set(p);origPolymer=origDescriptor.get()}else origPolymer=p;if(typeof origPolymer==="function")Object.defineProperty(window,"Polymer",{value:origPolymer,configurable:true,enumerable:true,writable:true})},get:function(){return typeof origPolymer==="function"?newPolymer:origPolymer},configurable:true,
enumerable:true})})();}).call(this);
</script><script nonce="nopnosk9VoEiau3Xtg_3uQ">window.Polymer=window.Polymer||{};window.Polymer.legacyOptimizations=true;window.Polymer.setPassiveTouchGestures=true;window.ShadyDOM={force:true,preferPerformance:true,noPatch:true};
window.polymerSkipLoadingFontRoboto = true;window.ShadyCSS = {disableRuntime: true};</script><link rel="shortcut icon" href="https://www.youtube.com/s/desktop/156c3d3d/img/favicon.ico" type="image/x-icon"><link rel="icon" href="https://www.youtube.com/s/desktop/156c3d3d/img/favicon_32x32.png" sizes="32x32"><link rel="icon" href="https://www.youtube.com/s/desktop/156c3d3d/img/favicon_48x48.png" sizes="48x48"><link rel="icon" href="https://www.youtube.com/s/desktop/156c3d3d/img/favicon_96x96.png" sizes="96x96"><link rel="icon" href="https://www.youtube.com/s/desktop/156c3d3d/img/favicon_144x144.png" sizes="144x144"><script nonce="nopnosk9VoEiau3Xtg_3uQ">var ytcsi={gt:function(n){n=(n||"")+"data_";return ytcsi[n]||(ytcsi[n]={tick:{},info:{}})},now:window.performance&&window.performance.timing&&window.performance.now&&window.performance.timing.navigationStart?function(){return window.performance.timing.navigationStart+window.performance.now()}:function(){return(new Date).getTime()},tick:function(l,t,n){var ticks=ytcsi.gt(n).tick;var v=t||ytcsi.now();if(ticks[l]){ticks["_"+l]=ticks["_"+l]||[ticks[l]];ticks["_"+l].push(v)}ticks[l]=v},info:function(k,
v,n){ytcsi.gt(n).info[k]=v},setStart:function(t,n){ytcsi.tick("_start",t,n)}};
(function(w,d){ytcsi.setStart(w.performance?w.performance.timing.responseStart:null);var isPrerender=(d.visibilityState||d.webkitVisibilityState)=="prerender";var vName=!d.visibilityState&&d.webkitVisibilityState?"webkitvisibilitychange":"visibilitychange";if(isPrerender){var startTick=function(){ytcsi.setStart();d.removeEventListener(vName,startTick)};d.addEventListener(vName,startTick,false)}if(d.addEventListener)d.addEventListener(vName,function(){ytcsi.tick("vc")},false);function isGecko(){if(!w.navigator)return false;
try{if(w.navigator.userAgentData&&w.navigator.userAgentData.brands&&w.navigator.userAgentData.brands.length){var brands=w.navigator.userAgentData.brands;for(var i=0;i<brands.length;i++)if(brands[i]&&brands[i].brand==="Firefox")return true;return false}}catch(e){setTimeout(function(){throw e;})}if(!w.navigator.userAgent)return false;var ua=w.navigator.userAgent;return ua.indexOf("Gecko")>0&&ua.toLowerCase().indexOf("webkit")<0&&ua.indexOf("Edge")<0&&ua.indexOf("Trident")<0&&ua.indexOf("MSIE")<0}if(isGecko()){var isHidden=
(d.visibilityState||d.webkitVisibilityState)=="hidden";if(isHidden)ytcsi.tick("vc")}var slt=function(el,t){setTimeout(function(){var n=ytcsi.now();el.loadTime=n;if(el.slt)el.slt()},t)};w.__ytRIL=function(el){if(!el.getAttribute("data-thumb"))if(w.requestAnimationFrame)w.requestAnimationFrame(function(){slt(el,0)});else slt(el,16)}})(window,document);
</script><link rel="preload" href="https://i.ytimg.com/generate_204" as="fetch"><link as="script" rel="preload" href="https://www.youtube.com/s/desktop/156c3d3d/jsbin/desktop_polymer.vflset/desktop_polymer.js" nonce="nopnosk9VoEiau3Xtg_3uQ"><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/webcomponents-sd.vflset/webcomponents-sd.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/intersection-observer.min.vflset/intersection-observer.min.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script nonce="nopnosk9VoEiau3Xtg_3uQ">if (window.ytcsi) {window.ytcsi.tick('lpcs', null, '');}</script><script nonce="nopnosk9VoEiau3Xtg_3uQ">(function() {window.ytplayer={};
ytcfg.set({"CLIENT_CANARY_STATE":"none","DEVICE":"cbr\u003dChrome\u0026cbrand\u003dapple\u0026cbrver\u003d109.0.0.0\u0026ceng\u003dWebKit\u0026cengver\u003d537.36\u0026cos\u003dMacintosh\u0026cosver\u003d10_15_7\u0026cplatform\u003dDESKTOP\u0026cyear\u003d2013","DISABLE_YT_IMG_DELAY_LOADING":false,"ELEMENT_POOL_DEFAULT_CAP":75,"EVENT_ID":"h8LiY6bbOsKD6QK505eQCA","EXPERIMENT_FLAGS":{"H5_enable_full_pacf_logging":true,"H5_use_async_logging":true,"allow_skip_networkless":true,"autoescape_tempdata_url":true,"background_thread_flush_logs_due_to_batch_limit":true,"browse_next_continuations_migration_playlist":true,"c3_watch_page_component":true,"cache_utc_offset_minutes_in_pref_cookie":true,"cancel_pending_navs":true,"check_user_lact_at_prompt_shown_time_on_web":true,"clear_user_partitioned_ls":true,"client_respect_autoplay_switch_button_renderer":true,"cold_missing_history":true,"csi_on_gel":true,"decorate_autoplay_renderer":true,"defer_menus":true,"defer_overlays":true,"defer_rendering_outside_visible_area":true,"deprecate_csi_has_info":true,"deprecate_pair_servlet_enabled":true,"deprecate_two_way_binding_child":true,"deprecate_two_way_binding_parent":true,"desktop_add_to_playlist_renderer_dialog_popup":true,"desktop_adjust_touch_target":true,"desktop_animate_miniplayer":true,"desktop_client_release":true,"desktop_delay_player_resizing":true,"desktop_enable_dmpanel_click_drag_scroll":true,"desktop_enable_dmpanel_scroll":true,"desktop_enable_dmpanel_wheel_scroll":true,"desktop_image_cta_no_background":true,"desktop_keyboard_capture_keydown_killswitch":true,"desktop_log_img_click_location":true,"desktop_mix_use_sampled_color_for_bottom_bar":true,"desktop_mix_use_sampled_color_for_bottom_bar_search":true,"desktop_mix_use_sampled_color_for_bottom_bar_watch_next":true,"desktop_notification_high_priority_ignore_push":true,"desktop_notification_set_title_bar":true,"desktop_persistent_menu":true,"desktop_search_prominent_thumbs":true,"desktop_sparkles_light_cta_button":true,"desktop_swipeable_guide":true,"desktop_themeable_vulcan":true,"desktop_touch_gestures_usage_log":true,"desktop_use_new_history_manager":true,"disable_child_node_auto_formatted_strings":true,"disable_dependency_injection":true,"disable_exif_rotation_for_image_posts":true,"disable_features_for_supex":true,"disable_legacy_desktop_remote_queue":true,"disable_open_in_new_window_on_discovery_ads_search_desktop":true,"disable_pacf_logging_for_memory_limited_tv":true,"disable_simple_mixed_direction_formatted_strings":true,"disable_thumbnail_preloading":true,"embeds_web_enable_replace_unload_w_pagehide":true,"embeds_web_nwl_disable_nocookie":true,"enable_audio_pivot_back_nav_button":true,"enable_button_behavior_reuse":true,"enable_call_to_action_clarification_renderer_bottom_section_conditions":true,"enable_client_sli_logging":true,"enable_client_streamz_web":true,"enable_commerce_action_request_sequencing":true,"enable_desktop_amsterdam_info_panels":true,"enable_docked_chat_messages":true,"enable_gel_log_commands":true,"enable_get_account_switcher_endpoint_on_webfe":true,"enable_handles_account_menu_switcher":true,"enable_handles_in_mention_suggest_posts":true,"enable_handoff_location_2fa_on_mweb":true,"enable_header_channel_handler_ui":true,"enable_hlp_client_icon_pick":true,"enable_image_poll_post_creation":true,"enable_inline_preview_controls":true,"enable_inline_shorts_on_wn":true,"enable_madison_search_migration":true,"enable_masthead_quartile_ping_fix":true,"enable_memberships_and_purchases":true,"enable_mentions_in_reposts":true,"enable_microformat_data":true,"enable_mixed_direction_formatted_strings":true,"enable_multi_image_post_creation":true,"enable_names_handles_account_switcher":true,"enable_offer_suppression":true,"enable_on_yt_command_executor_command_to_navigate":true,"enable_poll_choice_border_on_web":true,"enable_polymer_resin":true,"enable_polymer_resin_migration":true,"enable_post_cct_links":true,"enable_post_scheduling":true,"enable_premium_voluntary_pause":true,"enable_programmed_playlist_color_sample":true,"enable_programmed_playlist_redesign":tr
setMessage({"ADDED_TO_QUEUE":"Added to queue","ADD_TO_DROPDOWN_LABEL":"Save to...","AD_BADGE_TEXT":"Ad","AD_TITLE":"Ad: $title.","BACK_ALT_LABEL":"Back","BACK_ONLINE":"Back online","CANCEL":"Cancel","CAPTION_OFF_TOAST":"Subtitles/CC turned off","CAPTION_ON_TOAST":"Subtitles/CC turned on","CHECK_CONNECTION_OR_DOWNLOADS":"Please check your connection or watch your downloaded videos.","CLEAR":"Clear","CLOSE":"Close","CLOSED_CAPTIONS_DISABLED":"No captions are available for this video","COMMENT_LABEL":"Comment","CONNECT_TO_THE_INTERNET":"Connect to the internet","CONTINUE_WATCHING":"Continue watching","DELETE":"Delete","DELETED_PLAYLIST":"Playlist deleted from downloads.","DELETED_VIDEO":"Video deleted from downloads.","DELETE_ALL_DOWNLOADS_PROMPT":"Delete all downloads?","DELETE_FROM_DOWNLOADS":"Remove from downloads","DELETING_ALL":"Downloads are being deleted","DISLIKE_LABEL":"Dislike","DISMISS":"Dismiss","DOWNLOAD":"Download","DOWNLOADED":"Downloaded","DOWNLOADING":"Downloading","DOWNLOADING_PERCENT":"Downloading... $percent%","DOWNLOADS":"Downloads","DOWNLOADS_AVAILABILITY":"Downloads remain available as long as your device has an active internet connection at least once every 30 days.","DOWNLOADS_SETTINGS":"Downloads Settings","DOWNLOAD_EXPIRED":"Download expired","DOWNLOAD_PAUSED":"Download paused","DOWNLOAD_QUALITY":"Download Quality","DO_NOT_HAVE_DOWNLOADS":"You do not have any downloads","EDIT_AVATAR_LABEL":"Edit profile picture","EDU_GOT_IT":"Got It","END_OF_PLAYLIST":"End of playlist","ENTER_DATE_OR_EARLIER":"Enter $allowed_date or earlier","ENTER_DATE_OR_LATER":"Enter $allowed_date or later","FREEBIE_JOIN_MEMBERSHIP_EDU_TEXT":"This channel offers a membership which you can join for free with YouTube Premium","GO_TO_DOWNLOADS":"Go to downloads","GUIDE_ALT_LABEL":"Guide","HORIZONTAL_LIST_NEXT_LABEL":"Next","HORIZONTAL_LIST_PREVIOUS_LABEL":"Previous","IMAGE_HORIZONTAL_POSITION_LABEL":"The center of the preview is $x_percent% from the left and $y_percent% from the right.","IMAGE_VERTICAL_POSITION_LABEL":"The center of the preview is $x_percent% from the top and $y_percent% from the bottom.","INVALID_DATE_ERROR":"Invalid Date","JOIN_MEMBERSHIP_EDU_TEXT":"Get access to exclusive perks when you purchase a membership to this channel.","JOIN_MEMBERSHIP_EDU_TITLE":"Membership","KEEP_OPEN":"Keep this window open to continue","LIBRARY_GUIDE_ITEM_EDU_TEXT":"Find your history, playlists, purchases, and more","LIBRARY_GUIDE_ITEM_EDU_TITLE":"Check out your new Library","LIKE_LABEL":"Like","LOCAL_TIME_LABEL":"Local Time","LOGO_ALT_LABEL":"YouTube Home","MAIN_APP_WEB_COMMENT_TEASER_TOOLTIP":"Click here to read comments while watching the video.","MANAGE_MEMBERSHIP_EDU_TEXT":"Access your benefits and manage your membership from here.","MENTIONS_EDU_TEXT":"Go to the Help Center to see how mentions work on YouTube.","MENTIONS_EDU_TITLE":"Learn more","MINIPLAYER_CLOSE":"Close player","MINIPLAYER_COLLAPSE_LABEL":"Collapse","MINIPLAYER_EXPAND_LABEL":"Expand","NEXT_VIDEO_LABEL":"Next video","NO_ANGLE_BRACKET_LABEL":"Playlist title cannot contain \u003c or \u003e","NO_DOWNLOADS":"No downloads","NO_INTERNET_CONNECTION":"No internet connection","OFFLINE_CHECK_CONNECTION":"You\u0027re offline. Check your connection.","PAUSE_DOWNLOADING":"Pause downloading","PLAYER_LABEL_MUTE":"Mute (m)","PLAYER_LABEL_PAUSE":"Pause (k)","PLAYER_LABEL_PLAY":"Play (k)","PLAYER_LABEL_UNMUTE":"Unmute (m)","PLAYLIST_NEXT_VIDEO_TITLE":"Next: $video_title","PLAY_ALL":"Play all","PREPARING_TO_DOWNLOAD":"Preparing to download...","PREVIOUS_VIDEO_LABEL":"Previous video","QUEUE":"Queue","QUEUE_CLEARED":"{count,plural, \u003d1{1 video in the queue removed}other{# videos in the queue removed}}","QUEUE_CLEARED_UNPLURALIZED":"Queue cleared","QUEUE_CLOSE_MINIPLAYER_CONFIRM_BODY_TEXT":"Are you sure you want to close the player?","QUEUE_CLOSE_MINIPLAYER_CONFIRM_TITLE":"Queue will be cleared","QUEUE_RECOVER_BUTTON":"Restore","QUEUE_RECOVER_MESSAGE":"Recover queue","REACH_BOTTOM_OF_IMAGE_TEXT":"You have reached the bottom of the image","REACH_LEFT_OF_IMAGE_TEXT":"You have reac
</script><script nonce="nopnosk9VoEiau3Xtg_3uQ">if (window.ytcsi) {window.ytcsi.tick('lpcf', null, '');}</script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/scheduler.vflset/scheduler.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/www-i18n-constants-en_US.vflset/www-i18n-constants.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/www-tampering.vflset/www-tampering.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/spf.vflset/spf.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script nonce="nopnosk9VoEiau3Xtg_3uQ">if(window["_spf_state"])window["_spf_state"].config={"assume-all-json-requests-chunked":true};
</script><script src="https://www.youtube.com/s/desktop/156c3d3d/jsbin/network.vflset/network.js" nonce="nopnosk9VoEiau3Xtg_3uQ"></script><script nonce="nopnosk9VoEiau3Xtg_3uQ">if (window.ytcsi) {window.ytcsi.tick('csl', null, '');}</script><link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=YouTube+Sans:wght@300..900&display=swap" nonce="EXDS35bkZefCv-NuBrYLQw"><script name="www-roboto" nonce="nopnosk9VoEiau3Xtg_3uQ">if (document.fonts && document.fonts.load) {document.fonts.load("400 10pt Roboto", ""); document.fonts.load("500 10pt Roboto", "");}</script><link rel="stylesheet" href="https://www.youtube.com/s/desktop/156c3d3d/cssbin/www-onepick-2x.css" nonce="EXDS35bkZefCv-NuBrYLQw"><link rel="stylesheet" href="https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.blUb5Bj4eTY.L.B1.O/am=SA/d=0/br=1/rs=AGKMywGrhnWsvcr7HIYFgNRndqbf2eF8cg" nonce="EXDS35bkZefCv-NuBrYLQw"><style class="global_styles" nonce="EXDS35bkZefCv-NuBrYLQw">body{padding:0;margin:0;overflow-y:scroll}body.autoscroll{overflow-y:auto}body.no-scroll{overflow:hidden}body.no-y-scroll{overflow-y:hidden}.hidden{display:none}textarea{--paper-input-container-input_-_white-space:pre-wrap}.grecaptcha-badge{visibility:hidden}</style><style class="masthead_shell" nonce="EXDS35bkZefCv-NuBrYLQw">ytd-masthead.shell{background:hsla(0,0%,100%,.98);position:fixed;top:0;right:0;left:0;display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;height:56px;-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-moz-box-align:center;align-items:center}html[darker-dark-theme] ytd-masthead.shell{background-color:#fff!important}ytd-masthead.shell #menu-icon{margin-left:16px}ytd-app>ytd-masthead.chunked{position:fixed;top:0;width:100%}ytd-masthead.shell.dark,ytd-masthead.shell.theater{background:rgba(40,40,40,.98)}ytd-masthead.shell.full-window-mode{background:rgba(40,40,40,.98);opacity:0;-webkit-transform:translateY(calc(-100% - 5px));transform:translateY(calc(-100% - 5px))}html[darker-dark-theme] ytd-masthead.shell.dark,html[darker-dark-theme] ytd-masthead.shell.theater{background-color:#0f0f0f!important}html[darker-dark-theme] ytd-masthead.shell.full-window-mode{background-color:#0f0f0f!important}ytd-masthead.shell>:first-child{padding-left:16px}ytd-masthead.shell>:last-child{padding-right:16px}ytd-masthead #masthead-logo{display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex}ytd-masthead #masthead-logo #country-code{margin-right:2px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-red-updated-svg,ytd-masthead.shell #yt-logo-svg,ytd-masthead.shell #yt-logo-updated-svg{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;margin-left:8px;padding:0;color:#000}ytd-masthead.shell #a11y-skip-nav{display:none}ytd-masthead.shell svg{width:40px;height:40px;padding:8px;margin-right:8px;-moz-box-sizing:border-box;box-sizing:border-box;color:#606060;fill:currentColor}ytd-masthead .external-icon{width:24px;height:24px}ytd-masthead .yt-icons-ext{fill:currentColor;color:#606060}ytd-masthead.shell.dark .yt-icons-ext ytd-masthead.shell.theater .yt-icons-ext{fill:#fff}ytd-masthead svg#yt-logo-svg{width:80px}ytd-masthead svg#yt-logo-red-svg{width:106.4px}ytd-masthead svg#yt-logo-updated-svg{width:90px}ytd-masthead svg#yt-logo-red-updated-svg{width:97px}@media (max-width:656px){ytd-masthead.shell>:first-child{padding-left:8px}ytd-masthead.shell>:last-child{padding-right:8px}ytd-masthead.shell svg{margin-right:0}ytd-masthead #masthead-logo{-ms-flex:1 1 0.000000001px;-webkit-flex:1;-webkit-box-flex:1;-moz-box-flex:1;flex:1;-webkit-flex-basis:0.000000001px;-ms-flex-preferred-size:0.000000001px;flex-basis:0.000000001px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-svg{margin-left:4px}}@media (min-width:876px){ytd-masthead #masthead-logo{width:129px}}#masthead-skeleton-icons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-we
Twitter: https://twitter.com/MoistCr1TiKaL
Instagram: https://www.instagram.com/bigmoistcr1tikal/?hl=en
Twitch: https://www.twitch.tv/moistcr1tikal
Snapchat: Hugecharles
Tik Tok: Hugecharles
I don&#39;t have any other public accounts."><meta property="al:ios:app_store_id" content="544007664"><meta property="al:ios:app_name" content="YouTube"><meta property="al:ios:url" content="vnd.youtube://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><meta property="al:android:url" content="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg?feature=applinks"><meta property="al:android:app_name" content="YouTube"><meta property="al:android:package" content="com.google.android.youtube"><meta property="al:web:url" content="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg?feature=applinks"><meta property="og:type" content="profile"><meta property="og:video:tag" content="Cr1TiKaL"><meta property="og:video:tag" content="Gears"><meta property="og:video:tag" content="of"><meta property="og:video:tag" content="War"><meta property="og:video:tag" content="Call"><meta property="og:video:tag" content="Duty"><meta property="og:video:tag" content="Battlefield"><meta property="og:video:tag" content="Bad"><meta property="og:video:tag" content="Company"><meta property="og:video:tag" content="Fun"><meta property="og:video:tag" content="Tactics"><meta property="fb:app_id" content="87741124305"><meta name="twitter:card" content="summary"><meta name="twitter:site" content="@youtube"><meta name="twitter:url" content="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><meta name="twitter:title" content="penguinz0"><meta name="twitter:description" content="Clips channel: https://www.youtube.com/channel/UC4EQHfzIbkL_Skit_iKt1aA
Twitter: https://twitter.com/MoistCr1TiKaL
Instagram: https://www.instagram.com/bigmoistcr1tikal/?hl=en
Twitch: https://www.twitch.tv/moistcr1tikal
Snapchat: Hugecharles
Tik Tok: Hugecharles
I don&#39;t have any other public accounts."><meta name="twitter:image" content="https://yt3.googleusercontent.com/ytc/AL5GRJWOhJOuUC6C2b7gP-5D2q6ypXbcOOckyAE1En4RUQ=s900-c-k-c0x00ffffff-no-rj"><meta name="twitter:app:name:iphone" content="YouTube"><meta name="twitter:app:id:iphone" content="544007664"><meta name="twitter:app:name:ipad" content="YouTube"><meta name="twitter:app:id:ipad" content="544007664"><meta name="twitter:app:url:iphone" content="vnd.youtube://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><meta name="twitter:app:url:ipad" content="vnd.youtube://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><meta name="twitter:app:name:googleplay" content="YouTube"><meta name="twitter:app:id:googleplay" content="com.google.android.youtube"><meta name="twitter:app:url:googleplay" content="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><link itemprop="url" href="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><meta itemprop="name" content="penguinz0"><meta itemprop="description" content="Clips channel: https://www.youtube.com/channel/UC4EQHfzIbkL_Skit_iKt1aA
Twitter: https://twitter.com/MoistCr1TiKaL
Instagram: https://www.instagram.com/bigmoistcr1tikal/?hl=en
Twitch: https://www.twitch.tv/moistcr1tikal
Snapchat: Hugecharles
Tik Tok: Hugecharles
I don&#39;t have any other public accounts."><meta itemprop="paid" content="false"><meta itemprop="channelId" content="UCq6VFHwMzcMXbuKyG7SQYIg"><span itemprop="author" itemscope itemtype="http://schema.org/Person"><link itemprop="url" href="https://www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><link itemprop="name" content="penguinz0"></span><script type="application/ld+json" nonce="nopnosk9VoEiau3Xtg_3uQ">{"@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "item": {"@id": "https:\/\/www.youtube.com\/channel\/UCq6VFHwMzcMXbuKyG7SQYIg", "name": "penguinz0"}}]}</script><link itemprop="thumbnailUrl" href="https://yt3.googleusercontent.com/ytc/AL5GRJWOhJOuUC6C2b7gP-5D2q6ypXbcOOckyAE1En4RUQ=s900-c-k-c0x00ffffff-no-rj"><span itemprop="thumbnail" itemscope itemtype="http://schema.org/ImageObject"><link itemprop="url" href="https://yt3.googleusercontent.com/ytc/AL5GRJWOhJOuUC6C2b7gP-5D2q6ypXbcOOckyAE1En4RUQ=s900-c-k-c0x00ffffff-no-rj"><meta itemprop="width" content="900"><meta itemprop="height" content="900"></span><meta itemprop="isFamilyFriendly" content="true"><meta itemprop="regionsAllowed" content="UA,BY,YE,LS,MG,PN,DE,TF,GM,CI,MH,ME,EH,PR,MC,VE,FJ,KH,VU,VA,ZA,PF,SE,CN,CC,NP,TO,FM,KG,RE,GP,GD,KZ,AF,EC,LU,RU,FK,SC,IL,MK,SB,BJ,IO,MU,GH,PK,CZ,TM,DO,SI,GE,GY,ID,BG,IE,KP,ML,NR,NU,PH,UG,BB,LC,BZ,SJ,GA,GT,AG,ES,EE,CA,CG,TC,GN,KR,VI,GL,SS,HM,TV,LV,BV,AZ,BT,RS,GB,MA,GG,MN,FI,CR,DZ,TJ,PL,AL,GF,GQ,MF,AS,NE,NL,UY,SK,TT,MX,IT,SR,AI,ET,CU,HU,MO,ST,TK,NZ,LT,ER,TD,TW,LB,ZM,CM,KY,LR,AO,PY,BM,MV,SA,NF,NO,SH,IR,AQ,WF,NA,HK,LY,IN,CY,KE,DM,MS,MT,KM,OM,TN,BS,MD,GI,MY,GS,PW,LA,WS,TL,AE,JP,SL,SO,BH,SG,JO,CH,AR,AU,BQ,HR,TG,JM,PE,BR,TR,SX,BO,LI,HT,DK,RW,UZ,PG,PS,NG,SV,MR,RO,IM,NC,HN,JE,IQ,AX,BF,TZ,MZ,AT,BE,GR,SD,AW,CF,CV,SN,DJ,PA,AM,BL,MP,ZW,MM,EG,CO,FR,BD,SZ,BN,CL,GU,BA,MW,YT,SY,CK,LK,QA,NI,CW,US,GW,KW,IS,BI,VN,AD,CD,KN,VG,BW,KI,TH,VC,SM,MQ,UM,CX,PT,PM,FO"><link rel="alternate" href="android-app://com.google.android.youtube/http/www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><link rel="alternate" href="ios-app://544007664/vnd.youtube/www.youtube.com/channel/UCq6VFHwMzcMXbuKyG7SQYIg"><script nonce="nopnosk9VoEiau3Xtg_3uQ">(function serverContract() {window['ytPageType'] = "channel";window['ytCommand'] = {"clickTrackingParams":"IhMI7Zu-pq2E_QIV2K_lBx1N8wNfMghleHRlcm5hbA==","commandMetadata":{"webCommandMetadata":{"url":"/@penguinz0","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"},"resolveUrlCommandMetadata":{"isVanityUrl":true}},"browseEndpoint":{"browseId":"UCq6VFHwMzcMXbuKyG7SQYIg","params":"EgC4AQDyBgQKAjIA"}};window['ytUrl'] = '\/@penguinz0';var a=window;(function(e){var c=window;c.getInitialCommand=function(){return e};c.loadInitialCommand&&c.loadInitialCommand(c.getInitialCommand())})(a.ytCommand);
(function(e,c,l,f,g,h,k){var d=window;d.getInitialData=function(){var b=window;b.ytcsi&&b.ytcsi.tick("pr",null,"");b={page:e,endpoint:c,response:l};f&&(b.playerResponse=f);g&&(b.reelWatchSequenceResponse=g);k&&(b.url=k);h&&(b.previousCsn=h);return b};d.loadInitialData&&d.loadInitialData(d.getInitialData())})(a.ytPageType,a.ytCommand,a.ytInitialData,a.ytInitialPlayerResponse,a.ytInitialReelWatchSequenceResponse,a.ytPreviousCsn,a.ytUrl);
})();</script><link rel="stylesheet" href="https://www.youtube.com/s/desktop/156c3d3d/cssbin/www-main-desktop-watch-page-skeleton-2x.css" name="www-main-desktop-watch-page-skeleton" nonce="EXDS35bkZefCv-NuBrYLQw"><div id="watch-page-skeleton" rounded-container class="watch-skeletonhidden"><div id="container"><div id="related"><div class="autoplay skeleton-light-border-bottom"><div id="upnext" class="skeleton-bg-color"></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div><div class="video-skeleton"><div class="video-details"><div class="thumbnail skeleton-bg-color"></div><div class="details flex-1"><div class="video-title text-shell skeleton-bg-color"></div><div class="video-meta text-shell skeleton-bg-color"></div></div></div></div></div><div id="info-container"><div id="primary-info" class="skeleton-light-border-bottom"><div id="title" class="text-shell skeleton-bg-color"></div><div id="info"><div id="count" class="text-shell skeleton-bg-color"></div><div class="flex-1"></div><div id="menu"><div class="menu-button skeleton-bg-color"></div><div class="menu-button skeleton-bg-color"></div><div class="menu-button skeleton-bg-color"></div><div class="menu-button skeleton-bg-color"></div><div class="menu-button skeleton-bg-color"></div></div></div></div><div id="secondary-info" class="skeleton-light-border-bottom"><div id="top-row"><div id="video-owner" class="flex-1"><div id="channel-icon" class="skeleton-bg-color"></div><div id="upload-info" class="flex-1"><div id="owner-name" class="text-shell skeleton-bg-color"></div><div id="published-date" class="text-shell skeleton-bg-color"></div></div></div><div id="subscribe-button" class="skeleton-bg-color"></div></div></div></div></div></div><script nonce="nopnos
`