[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fiVqhUNHB7dwtNavk7s0DMozroGLxm7esZvUNy4t7F1w":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":127,"fingerprints":239},"osm-tiles-proxy","Tiles Proxy for OpenStreetMap","2.3.2","Adrian","https:\u002F\u002Fprofiles.wordpress.org\u002Fadrian2k7\u002F","\u003Cp>Tiles Proxy for OpenStreetMap provides a basic proxy, which allows other OpenStreetMap plugins to load map tiles from your server instead from OpenStreetMap servers.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sponsor\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fsachsen.tours\" rel=\"nofollow ugc\">sachsen.tours\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Contribute\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fosm-tiles-proxy\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fosm-tiles-proxy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Known to work with these plugins\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fde.wordpress.org\u002Fplugins\u002Fleaflet-map\u002F\" rel=\"nofollow ugc\">Leaflet Map\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcpt-to-map-store\u002F\" rel=\"ugc\">Custom Post Type to Map Store\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgeolocation\u002F\" rel=\"ugc\">Geolocation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Another plugin? Let us \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fosm-tiles-proxy\" rel=\"ugc\">know\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Notes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Beware\u003C\u002Fem>: Depending on your map and the tiles you need, a lot of storage is needed.\u003C\u002Fli>\n\u003Cli>Might be slower than official servers (depends on your server)\u003C\u002Fli>\n\u003Cli>First requests might be slow as map tiles are cached on request\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Filters\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can use filters to get the URLs from the plugin:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>  $proxy_cached_url   = apply_filters( 'osm_tiles_proxy_get_proxy_url', $proxy_cached_url );\n  $proxy_rest_api_url = apply_filters( 'osm_tiles_proxy_get_proxy_rest_url', $proxy_rest_api_url );\n  $leadlet_js_url     = apply_filters( 'osm_tiles_proxy_get_leaflet_js_url', $leadlet_js_url );\n  $leadlet_css_url    = apply_filters( 'osm_tiles_proxy_get_leaflet_css_url', $leadlet_css_url );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Constants\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>To disable cache invalidation when WP Rocket or WP Fastest Cache invalidate their cache, you can set the following constant in your \u003Ccode>wp-config.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'OSM_PROXY_DISABLE_CLEAR_CACHE', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Tiles Proxy for OpenStreetMap provides a basic proxy, which allows other OpenStreetMap plugins to load map tiles from your server instead from OpenStr &hellip;",200,5456,0,"2023-11-29T12:29:00.000Z","6.4.8","6.0","7.3",[19,20,21,22],"embed","gdpr","openstreetmap","proxy","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fosm-tiles-proxy","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fosm-tiles-proxy.2.3.2.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"adrian2k7",2,6200,88,669,71,"2026-04-05T07:52:27.212Z",[38,59,79,96,112],{"slug":39,"name":40,"version":41,"author":7,"author_profile":8,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":54,"download_link":55,"security_score":56,"vuln_count":57,"unpatched_count":13,"last_vuln_date":58,"fetched_at":27},"embed-google-fonts","Embed Google Fonts","3.1.1","\u003Cp>Embed Google Fonts tries to automatically replace registered Google Fonts from themes and plugins with local versions, directly loaded from your own server.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Contribute\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Notes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The first request might be very slow, as fonts are downloaded and cached the first time they are requested.\u003C\u002Fli>\n\u003Cli>This doesn’t automatically replace all your Google fonts with local versions. If a plugin\u002Ftheme doesn’t use WordPress wp_enqueue_style it probably won’t work.\u003C\u002Fli>\n\u003Cli>Loaded fonts are not optimized, means, the whole font including all subsets is loaded\u003C\u002Fli>\n\u003Cli>See FAQ for instructions to use locally hosted fonts directly and avoid using Heroku\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Thank you:\u003C\u002Fstrong> Fonts are downloaded using: \u003Ca href=\"https:\u002F\u002Fgwfh.mranftl.com\u002Ffonts\" rel=\"nofollow ugc\">https:\u002F\u002Fgwfh.mranftl.com\u002Ffonts\u003C\u002Fa>\u003C\u002Fp>\n","Embed Google Fonts tries to automatically replace registered Google Fonts from themes and plugin with local versions, directly loaded from your own se &hellip;",6000,50599,100,12,"2024-05-02T08:28:00.000Z","6.5.8","6.5.2","8.0",[19,20,53],"google-fonts","https:\u002F\u002Fgithub.com\u002Fmoewe-io\u002Fembed-google-fonts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fembed-google-fonts.3.1.1.zip",91,1,"2024-04-29 00:00:00",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":11,"downloaded":67,"rating":46,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":77,"download_link":78,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"oembed-manager","oEmbed Manager","3.3.0","Pierre Lannoy","https:\u002F\u002Fprofiles.wordpress.org\u002Fpierrelannoy\u002F","\u003Cp>\u003Cstrong>oEmbed Manager\u003C\u002Fstrong>  helps you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>allow\u002Fdisallow other websites to embed your content;\u003C\u002Fli>\n\u003Cli>conditionally allow\u002Fdisallow the display of embedded content on your site;\u003C\u002Fli>\n\u003Cli>fine tune the way oEmbed operates in the WordPress core;\u003C\u002Fli>\n\u003Cli>list, clear and update\u002Fcreate oEmbed cached items.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To conditionally allow\u002Fdisallow the display of embedded content, \u003Cstrong>oEmbed Manager\u003C\u002Fstrong>  fully integrates with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fuk-cookie-consent\u002F\" rel=\"ugc\">Cookie Consent\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookie-notice\u002F\" rel=\"ugc\">Cookie Notice for GDPR\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdo-not-track-stats\u002F\" rel=\"ugc\">Do Not Track Stats\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feu-cookie-law\u002F\" rel=\"ugc\">EU Cookie Law\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgdpr\u002F\" rel=\"ugc\">GDPR\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgdpr-cookie-compliance\u002F\" rel=\"ugc\">GDPR Cookie Compliance\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookie-law-info\u002F\" rel=\"ugc\">GDPR Cookie Consent\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you use one of these plugins, you can set oEmbed to display embedded content only when a visitor has agreed your cookie or privacy policy, or when she\u002Fhe has not set the Do Not Track flag of her\u002Fhis browser.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>oEmbed Manager\u003C\u002Fstrong> is part of \u003Ca href=\"https:\u002F\u002Fperfops.one\u002F\" rel=\"nofollow ugc\">PerfOps One\u003C\u002Fa>, a suite of free and open source WordPress plugins dedicated to observability and operations performance.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>This plugin, as any piece of software, is neither compliant nor non-compliant with privacy laws and regulations. It is your responsibility to use it with respect for the personal data of your users and applicable laws.\u003C\u002Fp>\n\u003Cp>This plugin doesn’t set any cookie in the user’s browser.\u003C\u002Fp>\n\u003Cp>This plugin doesn’t handle personally identifiable information (PII).\u003C\u002Fp>\n\u003Ch4>Donation\u003C\u002Fh4>\n\u003Cp>If you like this plugin or find it useful and want to thank me for the work done, please consider making a donation to \u003Ca href=\"https:\u002F\u002Fwww.laquadrature.net\u002Fen\" rel=\"nofollow ugc\">La Quadrature Du Net\u003C\u002Fa> or the \u003Ca href=\"https:\u002F\u002Fwww.eff.org\u002F\" rel=\"nofollow ugc\">Electronic Frontier Foundation\u003C\u002Fa> which are advocacy groups defending the rights and freedoms of citizens on the Internet. By supporting them, you help the daily actions they perform to defend our fundamental freedoms!\u003C\u002Fp>\n","Manage oEmbed capabilities of your website and take a new step in the GDPR compliance of your embedded content.",13971,4,"2025-11-22T11:26:00.000Z","6.9.4","6.2","8.1",[19,20,74,75,76],"manager","oembed","privacy","https:\u002F\u002Fperfops.one\u002Foembed-manager","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foembed-manager.3.3.0.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":46,"num_ratings":57,"last_updated":89,"tested_up_to":70,"requires_at_least":90,"requires_php":91,"tags":92,"homepage":94,"download_link":95,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"embed-consent","Embed Consent","1.1.1","Sam","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpsamclarke\u002F","\u003Cp>This plugin replaces embed blocks with a confirmation that prevents loading any third party resources until the user has given their consent.\u003C\u002Fp>\n\u003Cp>It enhances the built-in embed block and will automatically work with any current embeds. If the plugin is disabled\u002Fremoved, all embeds will continue to work there will just be no consent confirmation.\u003C\u002Fp>\n\u003Cp>Currently, the plugin only works with the Gutenberg \u003Ccode>core\u002Fembed\u003C\u002Fcode> block.\u003C\u002Fp>\n\u003Cp>The currently supported embed providers are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Amazon\u003C\u002Fli>\n\u003Cli>Animoto\u003C\u002Fli>\n\u003Cli>Cloudup\u003C\u002Fli>\n\u003Cli>Crowdsignal\u003C\u002Fli>\n\u003Cli>DailyMotion\u003C\u002Fli>\n\u003Cli>Flickr\u003C\u002Fli>\n\u003Cli>Imgur\u003C\u002Fli>\n\u003Cli>Issuu\u003C\u002Fli>\n\u003Cli>Kickstarter\u003C\u002Fli>\n\u003Cli>Mixcloud\u003C\u002Fli>\n\u003Cli>Pinterest\u003C\u002Fli>\n\u003Cli>Pocket Casts\u003C\u002Fli>\n\u003Cli>Reddit\u003C\u002Fli>\n\u003Cli>ReverbNation\u003C\u002Fli>\n\u003Cli>Screencast\u003C\u002Fli>\n\u003Cli>Scribd\u003C\u002Fli>\n\u003Cli>Slideshare\u003C\u002Fli>\n\u003Cli>SmugMug\u003C\u002Fli>\n\u003Cli>SoundCloud\u003C\u002Fli>\n\u003Cli>Speaker Deck\u003C\u002Fli>\n\u003Cli>Spotify\u003C\u002Fli>\n\u003Cli>TED\u003C\u002Fli>\n\u003Cli>TikTok\u003C\u002Fli>\n\u003Cli>Tumblr\u003C\u002Fli>\n\u003Cli>Twitter\u003C\u002Fli>\n\u003Cli>VideoPress\u003C\u002Fli>\n\u003Cli>Vimeo\u003C\u002Fli>\n\u003Cli>Wolfram\u003C\u002Fli>\n\u003Cli>WordPress.tv\u003C\u002Fli>\n\u003Cli>YouTube\u003C\u002Fli>\n\u003C\u002Ful>\n","Replaces embed blocks with a confirmation to ask for consent before loading third-party resources.",10,1348,"2025-11-29T03:42:00.000Z","6.1.1","7.4",[93,19,20,75,76],"consent","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fembed-consent.1.1.1.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":13,"downloaded":104,"rating":46,"num_ratings":31,"last_updated":105,"tested_up_to":70,"requires_at_least":50,"requires_php":91,"tags":106,"homepage":94,"download_link":111,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"dblocks-youtube-lazyload","Lazy Load for YouTube – GDPR Friendly YouTube Embed Block by DBlocks","1.3.1","DPlugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fdplugins\u002F","\u003Cp>\u003Cstrong>The GDPR friendly way to embed YouTube videos in WordPress.\u003C\u002Fstrong> This block replaces heavy YouTube iframes with a lightweight placeholder image and only loads the YouTube player when your visitor clicks play.\u003C\u002Fp>\n\u003Cp>No YouTube scripts or cookies are loaded until the user interacts — making your site faster and privacy compliant.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>GDPR & Privacy Friendly\u003C\u002Fstrong>: Zero YouTube scripts loaded until the user clicks play\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Faster Page Speed\u003C\u002Fstrong>: Replaces heavy YouTube embeds with a lightweight image placeholder\u003C\u002Fli>\n\u003Cli>\u003Cstrong>6 Play Button Styles\u003C\u002Fstrong>: Choose from 6 icon presets and apply them globally\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Play Icon\u003C\u002Fstrong>: Upload your own SVG play icon\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Theme Color Support\u003C\u002Fstrong>: Use your WordPress theme colors on the play button\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Adjustable Icon Size\u003C\u002Fstrong>: Control the size of the play button\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Thumbnail Quality\u003C\u002Fstrong>: Choose the YouTube thumbnail quality per block\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Thumbnail\u003C\u002Fstrong>: Upload your own thumbnail image for extra privacy\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Global Settings\u003C\u002Fstrong>: Set icon style, colors, and size once — applies across your entire site\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Free\u003C\u002Fstrong>: No premium upsells or locked features\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Third-Party Services\u003C\u002Fh3>\n\u003Cp>This plugin integrates with YouTube’s services in the following ways:\u003Cbr \u002F>\n– Fetches video thumbnail images from YouTube servers when displaying video previews\u003Cbr \u002F>\n– Loads the YouTube video player and related scripts when a user clicks to play a video\u003Cbr \u002F>\n– Communicates with YouTube’s servers to stream video content\u003C\u002Fp>\n\u003Cp>For more information about YouTube’s services:\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\" rel=\"nofollow ugc\">YouTube Service Homepage\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Ft\u002Fterms\" rel=\"nofollow ugc\">YouTube Terms of Service\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Google Privacy Policy\u003C\u002Fa> (YouTube is owned by Google)\u003C\u002Fp>\n\u003Ch3>Embeds\u003C\u002Fh3>\n\u003Cp>For more information about embeds:\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDBlocks-by-DPlugins\u002Fdblocks-lazyload-for-youtube\u002Fblob\u002Fmain\u002Fembeds.md\" rel=\"nofollow ugc\">Embed guide\u003C\u002Fa>\u003C\u002Fp>\n","GDPR friendly lazy load YouTube block that only loads the video player when visitors click play. Boost page speed by replacing heavy YouTube embeds wi &hellip;",2054,"2026-02-26T13:50:00.000Z",[20,107,108,109,110],"lazy-load","video","youtube","youtube-embed","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdblocks-youtube-lazyload.1.3.1.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":13,"downloaded":120,"rating":13,"num_ratings":13,"last_updated":121,"tested_up_to":122,"requires_at_least":123,"requires_php":72,"tags":124,"homepage":125,"download_link":126,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"gdpr-extensions-com-youtube-2clicksolution","GDPR-Extensions-com – Youtube 2xClick Solution","1.0.1","GDPR-Extensions.com","https:\u002F\u002Fprofiles.wordpress.org\u002Fgdprextensionscom\u002F","\u003Cp>The \u003Cstrong>YouTube 2xClick Solution\u003C\u002Fstrong> by GDPR-Extensions.com is a privacy-first plugin that allows you to embed YouTube videos in a GDPR-compliant manner. By default, videos are hidden behind a customizable content mask and only activated after the user consents to the use of YouTube cookies.\u003C\u002Fp>\n\u003Cp>Key features include:\u003Cbr \u002F>\n– Consent-based embedding with customizable overlay.\u003Cbr \u002F>\n– No YouTube cookies until user approval.\u003Cbr \u002F>\n– Integration with cookie consent managers or standalone usage.\u003Cbr \u002F>\n– Custom player settings (autoplay, loop, controls).\u003C\u002Fp>\n\u003Ch3>Features and Customization\u003C\u002Fh3>\n\u003Cp>Content Mask Customization:\u003Cbr \u002F>\n– Choose a background color or upload a custom image.\u003Cbr \u002F>\n– Edit the overlay text (e.g., “To watch this video, please allow cookies from YouTube.”).\u003C\u002Fp>\n\u003Cp>Consent Workflow:\u003Cbr \u002F>\n– With consent manager: YouTube cookies are listed and require approval before the video is loaded.\u003Cbr \u002F>\n– Without consent manager: Consent is collected directly from the overlay.\u003C\u002Fp>\n\u003Cp>Player Configuration:\u003Cbr \u002F>\n– Control autoplay, loop, and visibility of player controls.\u003Cbr \u002F>\n– Multiple YouTube videos can be embedded per page.\u003C\u002Fp>\n\u003Ch3>Data Handling Policy\u003C\u002Fh3>\n\u003Cp>Objective:\u003Cbr \u002F>\nTo ensure full GDPR compliance through transparent and minimal data usage.\u003C\u002Fp>\n\u003Ch3>YouTube Embedding\u003C\u002Fh3>\n\u003Cp>Purpose: Embed videos in a privacy-friendly way without preloading external resources.\u003C\u002Fp>\n\u003Cp>Data Sent: No cookies or external YouTube connections until user approval.\u003C\u002Fp>\n\u003Cp>Data Storage: Cookies are only stored after consent and expire after 30 days. No persistent data is stored by the plugin.\u003C\u002Fp>\n\u003Cp>Consent Options\u003C\u002Fp>\n\u003Cp>= With Consent Manager:=\u003Cbr \u002F>\n– Consent is requested and managed via your site’s cookie manager.\u003C\u002Fp>\n\u003Ch4>Without Consent Manager:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Consent is obtained directly via the plugin’s content mask.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Security and User Control:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>No automatic data sharing.\u003C\u002Fli>\n\u003Cli>Users control when and how cookies are created.\u003C\u002Fli>\n\u003Cli>No third-party scripts load without consent.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install and activate the plugin.  \u003C\u002Fli>\n\u003Cli>Navigate to \u003Ccode>Settings > YouTube 2xClick\u003C\u002Fcode> to configure appearance and behavior.  \u003C\u002Fli>\n\u003Cli>Use the shortcode \u003Ccode>[youtube_2xclick url=\"VIDEO_URL\"]\u003C\u002Fcode> in any post, page, or widget.  \u003C\u002Fli>\n\u003Cli>Customize player and consent options using shortcode attributes.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External Service Details\u003C\u002Fh3>\n\u003Cp>This plugin connects to YouTube only after users explicitly opt-in. All calls and cookies are disabled by default, ensuring compliance with GDPR, ePrivacy, and privacy-focused web development standards.\u003C\u002Fp>\n\u003Ch3>Developer Notes\u003C\u002Fh3>\n\u003Cp>Prefix for functions and database entries: \u003Ccode>gdprextensionscomyt2x\u003C\u002Fcode>\u003Cbr \u002F>\nBuilt with WordPress best practices and compatibility in mind.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>The YouTube 2xClick Solution by GDPR-Extensions.com is designed to respect user privacy and ensure full compliance with GDPR and related data protection laws.\u003C\u002Fp>\n\u003Ch4>What Data Is Collected:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>By default, no personal data is collected or stored by the plugin.\u003C\u002Fli>\n\u003Cli>YouTube videos and cookies are only loaded after explicit user consent.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How Consent Is Handled:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>When a consent management system is active, this plugin defers cookie handling to that system.\u003C\u002Fli>\n\u003Cli>Without a consent manager, users must interact with a content mask to enable cookies. No YouTube scripts or tracking are triggered before consent.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Cookie Information:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>YouTube cookies (e.g., VISITOR_INFO1_LIVE, YSC, and others) are only created after the user consents.\u003C\u002Fli>\n\u003Cli>Default cookie expiration is 30 days unless modified by YouTube.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Data Sharing:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>No user data is sent to GDPR-Extensions.com.\u003C\u002Fli>\n\u003Cli>No third-party data sharing occurs without user action.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Security:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The plugin avoids preloading third-party scripts and follows WordPress security best practices.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Your Control:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Users may revoke consent at any time via your site’s cookie management tools.\u003C\u002Fli>\n\u003Cli>Admins may remove or reset embedded videos to reset consent behavior.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more information, review:\u003Cbr \u002F>\n– https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003Cbr \u002F>\n– https:\u002F\u002Fpolicies.google.com\u002Fterms\u003Cbr \u002F>\n–\u003Ca href=\"https:\u002F\u002Fwww.gdpr-extensions.com\u002Fgdpr-solutions\u002Four-2-click-solutions\u002Fyoutube-2xclick-solution\u002Fterms-of-use\" rel=\"nofollow ugc\">GDPR-Extensions.com Terms\u003C\u002Fa>\u003Cbr \u002F>\n–\u003Ca href=\"https:\u002F\u002Fwww.gdpr-extensions.com\u002Fgdpr-solutions\u002Four-2-click-solutions\u002Fyoutube-2xclick-solution\u002Fprivacy-policy\" rel=\"nofollow ugc\">GDPR-Extensions.com Privacy Policy\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Frequently Asked Questions (FAQ)\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>How does this plugin block YouTube cookies?\u003C\u002Fstrong>\u003Cbr \u002F>\nUntil consent is given, YouTube is not loaded, preventing any cookie creation or tracking.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Do I need a consent manager?\u003C\u002Fstrong>\u003Cbr \u002F>\nNo. The plugin works standalone or integrates with existing consent management tools.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I style the content mask?\u003C\u002Fstrong>\u003Cbr \u002F>\nYes, through the plugin settings you can customize background image, color, and text.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What happens after the user consents?\u003C\u002Fstrong>\u003Cbr \u002F>\nThe content mask is removed, the YouTube video is loaded, and cookies are created.\u003C\u002Fp>\n\u003Ch3>Developer Notes\u003C\u002Fh3>\n\u003Cp>This plugin uses the ‘gdprextensioncomyt’ prefix for function names and database tables to ensure uniqueness and avoid conflicts with other plugins.\u003C\u002Fp>\n\u003Ch3>Contact\u003C\u002Fh3>\n\u003Cp>For questions or support, reach out to us at support@gdpr-extensions.com.\u003C\u002Fp>\n","Short Description: The GDPR YouTube 2xClick Solution lets you embed YouTube videos while protecting user privacy through consent-based loading.",571,"2025-04-25T10:59:00.000Z","6.8.5","6.4",[19,20,76,108,109],"https:\u002F\u002Fwww.gdpr-extensions.com\u002Fgdpr-solutions\u002Four-2-click-solutions\u002Fyoutube-2xclick-solution","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgdpr-extensions-com-youtube-2clicksolution.1.0.1.zip",{"attackSurface":128,"codeSignals":211,"taintFlows":227,"riskAssessment":228,"analyzedAt":238},{"hooks":129,"ajaxHandlers":199,"restRoutes":200,"shortcodes":209,"cronEvents":210,"entryPointCount":57,"unprotectedCount":57},[130,136,140,144,147,152,156,160,164,168,173,177,180,184,187,190,193,195],{"type":131,"name":132,"callback":133,"file":134,"line":135},"action","rest_api_init","add_osm_proxy","includes\\osm-tiles-proxy.class.php",23,{"type":131,"name":137,"callback":138,"priority":13,"file":134,"line":139},"template_redirect","cache_on_404",24,{"type":131,"name":141,"callback":142,"file":134,"line":143},"wpfc_delete_cache","clear_cache",26,{"type":131,"name":145,"callback":142,"file":134,"line":146},"after_rocket_clean_domain",27,{"type":148,"name":149,"callback":150,"priority":87,"file":134,"line":151},"filter","osm_tiles_proxy_get_proxy_url","get_proxy_url_cached",29,{"type":148,"name":153,"callback":154,"priority":87,"file":134,"line":155},"osm_tiles_proxy_get_proxy_rest_url","get_proxy_url_rest_api",30,{"type":148,"name":157,"callback":158,"priority":87,"file":134,"line":159},"osm_tiles_proxy_get_leaflet_js_url","get_leaflet_js_url",31,{"type":148,"name":161,"callback":162,"priority":87,"file":134,"line":163},"osm_tiles_proxy_get_leaflet_css_url","get_leaflet_css_url",32,{"type":148,"name":165,"callback":166,"priority":87,"file":134,"line":167},"osm_tiles_proxy_disable_clear_cache","is_clear_cache_disabled",34,{"type":148,"name":169,"callback":170,"priority":171,"file":134,"line":172},"plugin_row_meta","init_row_meta",11,37,{"type":131,"name":174,"callback":174,"file":175,"line":176},"customize_register","includes\\osm-tiles-proxy.customizer-class.php",8,{"type":131,"name":178,"callback":178,"file":175,"line":179},"leaflet_map_loaded",9,{"type":148,"name":181,"callback":182,"priority":87,"file":183,"line":87},"default_option_leaflet_map_tile_url","closure","includes\\plugin.leaflet-map.php",{"type":148,"name":185,"callback":182,"priority":87,"file":183,"line":186},"default_option_leaflet_js_url",14,{"type":148,"name":188,"callback":182,"priority":87,"file":183,"line":189},"default_option_leaflet_css_url",18,{"type":148,"name":191,"callback":182,"priority":87,"file":183,"line":192},"default_option_leaflet_map_tile_url_subdomains",22,{"type":148,"name":194,"callback":182,"priority":87,"file":183,"line":143},"default_option_leaflet_default_attribution",{"type":131,"name":196,"callback":197,"file":198,"line":151},"wp_enqueue_scripts","osm_tiles_proxy_register_leaflet","osm-tiles-proxy.php",[],[201],{"namespace":202,"route":203,"methods":204,"callback":206,"permissionCallback":207,"file":134,"line":208},"osm-tiles-proxy\u002Fv1","\u002Ftiles\u002F(?P\u003Cs>\\w+)\u002F(?P\u003Cz>\\d+)\u002F(?P\u003Cx>\\d+)\u002F(?P\u003Cy>\\d+).png",[205],"GET","get_osm_tile","__return_true",47,[],[],{"dangerousFunctions":212,"sqlUsage":213,"outputEscaping":215,"fileOperations":225,"externalRequests":57,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":226},[],{"prepared":13,"raw":13,"locations":214},[],{"escaped":57,"rawEcho":68,"locations":216},[217,220,222,223],{"file":134,"line":218,"context":219},187,"raw output",{"file":134,"line":221,"context":219},194,{"file":134,"line":11,"context":219},{"file":134,"line":224,"context":219},204,3,[],[],{"summary":229,"deductions":230},"The \"osm-tiles-proxy\" plugin v2.3.2 exhibits a mixed security posture.  On the positive side, it demonstrates good practices in avoiding dangerous functions, utilizing prepared statements for all SQL queries, and having no recorded vulnerability history.  The absence of taint analysis issues and only one external HTTP request are also favorable. However, significant concerns arise from its attack surface.  With one unprotected REST API route and zero capability checks, this presents a clear entry point for unauthorized actions.  Furthermore, the low percentage of properly escaped output suggests potential for cross-site scripting vulnerabilities, especially when dealing with data that might be reflected in user interfaces.",[231,233,235],{"reason":232,"points":87},"Unprotected REST API route",{"reason":234,"points":87},"Zero capability checks",{"reason":236,"points":237},"Low output escaping percentage",6,"2026-03-16T20:17:47.724Z",{"wat":240,"direct":246},{"assetPaths":241,"generatorPatterns":243,"scriptPaths":244,"versionParams":245},[242],"\u002Fwp-content\u002Fplugins\u002Fosm-tiles-proxy\u002Fassets\u002Fcustomizer-preview.js",[],[242],[],{"cssClasses":247,"htmlComments":248,"htmlAttributes":249,"restEndpoints":256,"jsGlobals":258,"shortcodeOutput":260},[],[],[250,251,252,253,254,255],"data-customize-setting-link=\"osm_tiles_proxy_min_zoom\"","data-customize-setting-link=\"osm_tiles_proxy_max_zoom\"","data-customize-setting-link=\"osm_tiles_proxy_min_x\"","data-customize-setting-link=\"osm_tiles_proxy_max_x\"","data-customize-setting-link=\"osm_tiles_proxy_min_y\"","data-customize-setting-link=\"osm_tiles_proxy_max_y\"",[257],"\u002Fwp-json\u002Fosm-tiles-proxy\u002Fv1\u002Ftile",[259],"wp_leaflet_map",[]]