TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

TGCrawl

Play Store Screenshots Project for Indexing of Telegram Channel Connections

PlayStoreGitHub

Features

  • [WiP] Crowdsourcing
  • Indexing
  • Relations map
  • Multilinguality
  • Community-orientation
  • Statistics
  • No ads for contributors
  • Security

[WiP] Crowdsourcing

This app is made with crowdsourcing in mind. This means that after we finish our backend and iron it out, all users will be able not only to participate in indexing the full map of Telegram channels but also to view data collected by other users.

Indexing

This app helps you analyze what connections channels have. This is possible due to the continuous process of analyzing messages and resolving connections on reposts. When you index a channel, the app reads up to 50 messages from the channel, starting at the latest message, and checks if between those messages there is a repost of any channel. If the repost is found, then the app checks if it "knows" that channel (i.e. if this is the first repost from this channel among all indexed channels), if not - it gets info about the channel and its icon, if yes - increments amount of reposts for the connection. In the end, it results in a list of connections that this channel has against all other channels, and you can then go and index another channel to get connections of the connection and so on. User can download indexed channel data.

Relations map

After indexing, the app creates a map of the indexed channels. If you have one channel indexed, it will look like a central node with connections radiating from it. If you have multiple channels that repost the same channels or cross-repost, you will see a complicated web of relations that you can watch and check if they are connected through other channels.

Multilinguality

This app aims to be available in all possible languages. You can see the list of languages in languages.json. We thank our contributors for their support. The only two languages, maintained by the developers are English and Ukrainian, for all other languages, we ask our community for help. Please, create a fork of the repo, add the translated language as JSON in config folder, and then create a merge request to finish this. You will be added to contributors automatically and we will later make the app display thanks for our contributors.

Community-orientation

This app is being developed by a single person with a backend and overall project idea coming from @hampta. We encourage anyone to open new issues and report bugs, crashes, translation errors, bad UX, and incorrect UI and submit any proposal you might have. We will read it and react to it, and this app won't be possible without the help from you, the community members. Thank you.

Statistics

You can see stats for what you have indexed, like the total amount of messages, reposts, connections, and channels. These stats are available both overall per your work and per each channel.

No ads for contributors

By enabling analysis sharing you automatically remove all ads from the app. For the project's sake, we want to encourage everyone to share indexed data to create a crowdsourced map of Telegram channels, but if you don't want to participate, it is your decision. But you may see ads appear in the app if you are viewing our data without contributing :)

Security

We take security very seriously. There are no jokes, as this app requires your Telegram account to even function. While we can't guarantee that your account won't be banned for using this app, it is true that that did not happen to anyone yet. Your Telegram login is always local, we are not receiving any of your credentials and the app is not sending any of your data anywhere, EXCEPT for what Telegram Library (TDLib) does. We are not responsible for TDLibs data handling, but the app itself does not send or save any of your login credentials, session keys, or any of your information. Crowdsourcing is always anonymous, if you are opting in to share analyzed data, the only info app that will be sending is the analysis results for the channels you have indexed and known channels that were discovered. No other data will be sent. PERIOD.

About

Telegram channel relations analyzer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages