PageSourceSearch

https://summ-it.base44.app/audio

html summ-it.base44.app collected 2026-10-03 03:09:01 UTC 12,704 bytes, 255 lines download raw bytes

1<!DOCTYPE html>
2<html lang="nl">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/69bdb75be8aa97db712336bc/0f47ce19b_logo.jpg" rel="icon" type="image/svg+xml"/>
39  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
40  <link href="/manifest.json" rel="manifest"/>
41  <!-- Preconnect to image hosts so DNS + TLS are ready before React renders <img> tags -->
42  <link crossorigin="" href="https://media.base44.com" rel="preconnect"/>
43  <link crossorigin="" href="https://podcast.npo.nl" rel="preconnect"/>
44  <link crossorigin="" href="https://www.omnycontent.com" rel="preconnect"/>
45  <link href="https://media.base44.com" rel="dns-prefetch"/>
46  <link href="https://podcast.npo.nl" rel="dns-prefetch"/>
47  <link href="https://www.omnycontent.com" rel="dns-prefetch"/>
48  <title>
49   Audio Page | Summ'it
50  </title>
51  <meta content="Audio Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio." name="description"/>
52  <meta content="Audio Page | Summ'it" property="og:title"/>
53  <meta content="Audio Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio." property="og:description"/>
54  <meta content="https://summ-it.base44.app/audio" property="og:url"/>
55  <meta content="website" property="og:type"/>
56  <meta content="https://media.base44.com/images/public/69bdb75be8aa97db712336bc/e3412ffe0_AfbeeldingSocialShare.jpg/v1/fill/w_1200,h_630/e3412ffe0_AfbeeldingSocialShare.jpg" property="og:image"/>
57  <meta content="Summ'it" property="og:site_name"/>
58  <meta content="summary_large_image" name="twitter:card"/>
59  <meta content="Audio Page | Summ'it" name="twitter:title"/>
60  <meta content="Audio Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio." name="twitter:description"/>
61  <meta content="https://media.base44.com/images/public/69bdb75be8aa97db712336bc/e3412ffe0_AfbeeldingSocialShare.jpg/v1/fill/w_1200,h_630/e3412ffe0_AfbeeldingSocialShare.jpg" name="twitter:image"/>
62  <!-- Google Analytics -->
vendor: 69 bytes, lines 62-63
62
63  <script async="" src="https://www.googletagmanager.com/gtag/js?id=
63G-YVYBCECH8Z
vendor: 17 bytes, lines 63-65
63">
64  </script>
65  
65<script>
66   
vendor: 145 bytes, lines 66-69
66window.dataLayer = window.dataLayer || [];
67      function gtag(){dataLayer.push(arguments);}
68      gtag('js', new Date());
69      gtag('config', '
69G-YVYBCECH8Z
vendor: 6 bytes, lines 69-70
69');
70  
70</script>
70
71  <!--
72      Safety shim: the native iOS/Android webview injects a real
73      WebViewJavascriptBridge object. In a standard browser it is absent,
74      so any bare-identifier reference (e.g. from the vite-plugin's
75      navigation notifier) throws "Uncaught ReferenceError:
76      WebViewJavascriptBridge is not defined". We define a no-op stand-in
77      so the app degrades gracefully — method calls silently do nothing.
78      The real native bridge, when present, overwrites this.
79    -->
80  
80<script>
81   if (typeof window.WebViewJavascriptBridge === 'undefined') {
82        window.WebViewJavascriptBridge = new Proxy({}, {
83          get: function () {
84            return function () { return undefined; };
85          }
86        });
87      }
88  </script>
88
89  
89<script crossorigin="" src="/assets/index-BkYHdQDn.js" type="module">
90  </script>
90
91  <link crossorigin="" href="/assets/index-DcOmJde0.css" rel="stylesheet"/>
92  
92<script type="module">
93   if (window.self === window.top) {
94  let lastPath = "";
95  function getPageNameFromPath(path) {
96    const segments = path.split("/").filter(Boolean);
97    return segments[0] || null;
98  }
99  function trackPageView() {
100    const path = window.location.pathname;
101    if (path === lastPath) return;
102    lastPath = path;
103    const pageName = getPageNameFromPath(path) || "home";
104    const appId = "69bdb75be8aa97db712336bc";
105    if (!appId) return;
106    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
107      method: "POST",
108    }).catch(() => {});
109  }
110  const originalPushState = history.pushState.bind(history);
111  history.pushState = function (...args) {
112    originalPushState(...args);
113    trackPageView();
114  };
115  const originalReplaceState = history.replaceState.bind(history);
116  history.replaceState = function (...args) {
117    originalReplaceState(...args);
118    trackPageView();
119  };
120  window.addEventListener("popstate", trackPageView);
121  trackPageView();
122}
123  </script>
123
124  <meta content="https://summ-it.base44.app/audio" name="twitter:url"/>
125  
125<script>
126   (function () {
127  var titles = {"/login": "Login | Summ'it", "/register": "Register | Summ'it", "/forgot-password": "Forgot Password | Summ'it", "/reset-password": "Reset Password | Summ'it", "/privacy": "Privacy | Summ'it", "/plan-select": "Branded Login | Summ'it", "/": "Summ'it", "/discover": "Discover | Summ'it", "/audio": "Audio Page | Summ'it", "/video": "Video Page | Summ'it", "/search": "Search | Summ'it", "/library": "Library | Summ'it", "/achievements": "Achievements | Summ'it", "/chat": "Chat | Summ'it", "/account": "Account | Summ'it", "/upgrade": "Summ'it", "/club": "Podcast Club | Summ'it", "/samen-luisteren": "Community Lists | Summ'it", "/lists": "Community Lists | Summ'it", "/events": "Events | Summ'it", "/geolistening": "Geolistening Gate | Summ'it", "/community": "Community Dashboard | Summ'it", "/community/feed": "Community Dashboard | Summ'it", "/profile": "Account | Summ'it", "/submit-podcast": "Submit Podcast | Summ'it", "/topic-clubs": "Topic Clubs | Summ'it", "/mijn-podcast-radio": "My Podcast Radio | Summ'it", "/open-browser": "Open Browser | Summ'it", "/live": "Live | Summ'it", "/admin": "Admin / Content Manager | Summ'it", "/home": "Summ'it"};
128  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
129  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
130  var dashed = function (s) {
131    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
132  };
133  var decode = function (s) {
134    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
135    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
136    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
137  };
138  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
139  var norm = function (path) {
140    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
141    return parts.length ? "/" + parts.join("/") : "/";
142  };
143  var lastPath = location.pathname, written = document.title, on = true;
144  var sync = function () {
145    // Path only: a hash/query change is the same page, and the SDK strips its own auth
146    // params with replaceState -- neither must clobber a server-rendered title in place.
147    if (!on || location.pathname === lastPath) return;
148    lastPath = location.pathname;
149    if (document.title !== written) { on = false; return; }
150    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
151    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
152    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
153    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
154    // a redirect landing on an unmapped path would bake the placeholder into the stored
155    // snapshot. Leaving the title alone degrades to today's behavior instead.
156    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
157    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
158    // dashes there, and the client cannot tell the two apart. The map emits every reachable
159    // shape per segment instead (_client_url_variants).
160    var title = titles[norm(location.pathname)];
161    if (title === undefined) return;
162    document.title = title;
163    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
164    // keeping the assigned string would make the next sync() read our own write as the app's.
165    written = document.title;
166  };
167  var wrap = function (fn) {
168    // The history entry is already pushed by the time sync() runs, so a throw here would
169    // surface inside the host app's router and break navigation. This is injected into apps
170    // we cannot test, so it swallows rather than trusting the trace.
171    return function () {
172      var r = fn.apply(this, arguments);
173      try { sync(); } catch (e) {}
174      return r;
175    };
176  };
177  history.pushState = wrap(history.pushState);
178  history.replaceState = wrap(history.replaceState);
179  window.addEventListener("popstate", sync);
180})();
181  </script>
181
182  <meta content="yes" name="mobile-web-app-capable"/>
183  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
184  <meta content="Summ'it" name="apple-mobile-web-app-title"/>
185  <link href="https://summ-it.base44.app/audio" rel="canonical"/>
186  
186<script data-seo-source="builder" type="application/ld+json">
187   {"name": "Summ'it", "@context": "https://schema.org", "@type": "WebSite", "url": "https://summitapp.eu"}
188  </script>
188
189  
189<script data-seo-source="builder" type="application/ld+json">
190   {"name": "Summ'it", "logo": "https://media.base44.com/images/public/69bdb75be8aa97db712336bc/0f47ce19b_logo.jpg", "@context": "https://schema.org", "@type": "Organization", "url": "https://summitapp.eu"}
191  </script>
191
192  
192<script data-seo-source="builder" type="application/ld+json">
193   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://summ-it.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "Audio Page | Summ'it", "item": "https://summ-it.base44.app/audio"}]}
194  </script>
194
195  <meta content="noindex, follow" name="robots"/>
196 </head>
197 <body>
198  <div id="root">
199   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
200    <main>
201     <header>
202      <h1>
203       Audio Page | Summ'it
204      </h1>
205      <p>
206       Audio Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio.
207      </p>
208     </header>
209     <nav aria-label="Pages">
210      <h2>
211       Pages
212      </h2>
213      <ul>
214       <li>
215        <a href="/">
216         Home
217        </a>
218       </li>
219       <li>
220        <a href="/discover">
221         Discover
222        </a>
223        — Discover on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio.
224       </li>
225       <li>
226        <a href="/audio">
227         Audio Page
228        </a>
229        — Audio Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio.
230       </li>
231       <li>
232        <a href="/video">
233         Video Page
234        </a>
235        — Video Page on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio.
236       </li>
237       <li>
238        <a href="/upgrade">
239         Upgrade
240        </a>
241        — An immersive, cinematic hub for discovering and streaming curated podcasts and high-definition vodcasts across every genre imaginable.
242       </li>
243       <li>
244        <a href="/events">
245         Events
246        </a>
247        — Events on Summ'it. Summ'it is de Vlaamse podcastapp voor podcasts, vodcasts en originele audio.
248       </li>
249      </ul>
250     </nav>
251    </main>
252   </div>
253  </div>
254 </body>
255</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.