Stealing Storage from Telegram

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • By popular demand.
    Discord: / discord
    Github for code: github.com/devdetour/Telegram...
    Ko-Fi: ko-fi.com/devdetour
    Chapters:
    00:00 Last Time
    00:40 Shameless plug
    0:42 Why I Didn't Do That
    1:58 What/Why Telegram
    2:32 Not Banned Yet
    2:43 Teldrive
    3:20 FUSE programs
    4:36 Implementing It
    6:18 Fixing It
    6:34 Writing is Hard
    9:48 Reading is Also Hard
    10:52 Performance
    11:29 TY, CYA
  • НаукаНаука

Комментарии • 336

  • @rayanfernandes2631
    @rayanfernandes2631 5 месяцев назад +193

    2 years ago I wanted build the exact same fuse mount thingy with telegram, but gave up since it was very very very much ambitious for my knowledge in systems file i/o operations. Really informative content, Keep em coming. Enjoyed every bit! ❤

  • @Yuki-HoYo
    @Yuki-HoYo 6 месяцев назад +164

    I was kinda surprise when I found your channel. You’re underrated for the type of content you’re making

    • @Spiderfffun
      @Spiderfffun 5 месяцев назад +3

      ty you reminded me to subscribe to this amazing creator

    • @nRGM7-or9se
      @nRGM7-or9se Месяц назад

      He better be underated or every money(storage) glitch is gonna be patched 😂

  • @suvantmsuvantheminecraftia7407
    @suvantmsuvantheminecraftia7407 6 месяцев назад +30

    I JUST saw your part 1 video of stealing storage from discord and your part 2 is up by the time I finished the video(uploaded an hour ago)!

  • @UtkarshKoppikar
    @UtkarshKoppikar 6 месяцев назад +332

    Can you open source this? Would like to contribute. Or you have already and I haven't reached that point in the video

    • @devdetour
      @devdetour  6 месяцев назад +163

      Yeah! GitHub repo link is in the description. Contributions very much welcome!

    • @sketchychillandchill
      @sketchychillandchill 5 месяцев назад

      ​@@devdetourand the discord fs?

    • @-john-9438
      @-john-9438 5 месяцев назад +10

      Me not knowing how Github works (Im not a programmer)

    • @guinea_horn
      @guinea_horn 5 месяцев назад

      ​@@-john-9438then why comment

    • @xynocode
      @xynocode 5 месяцев назад +5

      this project may help me archiving my interpolated video project when I don't have any available HDD storage. thanks

  • @shayhan6227
    @shayhan6227 5 месяцев назад +188

    This guy is the reason free services eventually start to cost money.

    • @R_Samnan
      @R_Samnan 3 месяца назад +18

      Yea specially if its out in the public then alot of people will do the same, just because something is free doesnt mean it has no expenses behind it

  • @prawnproductions234
    @prawnproductions234 5 месяцев назад +34

    The algorithm has brought me back. Thank you.

  • @a1x5h04
    @a1x5h04 2 месяца назад

    I was thinking to create a file storage platform based on telegram, and you made it much much easier ❤

  • @smith3463
    @smith3463 6 месяцев назад +1

    You're amazing. I had always given up on my dream of becoming a programmer, but you sparked it once more.

  • @jamlie977
    @jamlie977 6 месяцев назад +17

    that's amazing lmao
    to be honest, this approach is much easier than the previous one. it took me around 8 seconds to think of a way to create this, but the only difference is that i would have to use something like a /sync to send the new pictures/videos

  • @rovicrosales5547
    @rovicrosales5547 5 месяцев назад +2

    I have a question??
    Does the files last as long as the telegram exists?

  • @JamesSmith-ix5jd
    @JamesSmith-ix5jd 5 месяцев назад +41

    Telegram is slow for non premium especially in the evening (in Europe), sometimes downloading a simple 20MB video takes forever.

    • @luizansounds
      @luizansounds 2 месяца назад

      Honestly just for the unlimited file size, it's worth paying the premium just for the speed, specially if you compress everything in 2gb chunks for backup

  • @phizicks
    @phizicks 5 месяцев назад +3

    I would've written each chunk as their own file and have a metadata file (FAT) for each message id part to the file. if you overwrite, you replace the initial X block files and delete the rest if they are smaller, or create new block files if they are bigger.

  • @ohmygosh6176
    @ohmygosh6176 5 месяцев назад +9

    Anyday Google Drive, Dropbox, or other cloud storage can change their policy or go down. That is why it is always a good idea to have multiple backup plans.

    • @chadthunderlord5830
      @chadthunderlord5830 Месяц назад +1

      Like having 2 1tb hdd drives that is completely yours and cant delete your files or ban you? Yea...

  • @kleins0
    @kleins0 6 месяцев назад

    Very interesting video again!

  • @killervacuum
    @killervacuum 5 месяцев назад +2

    i use telegram as a backup mainly for the photos from my phone but also other important files. the main drawback is that the download and upload speeds can be quite slow sometimes.

  • @DanDrakeV
    @DanDrakeV 6 месяцев назад

    This is so good!

  • @realcheez795
    @realcheez795 6 месяцев назад +2

    this is amazing

  • @Kalphalus
    @Kalphalus 5 месяцев назад +8

    On discord, why dont use another channel to save the name and the file ids? Or at least make a backup of the id list every once in a while on Google Drive, Dropbox, (Telegram, Discord,) etc.

  • @myfather7893
    @myfather7893 5 месяцев назад

    wasn't there Unlim Cloud app which used telegram for storgae. Or did it stopped working?

  • @Girgoo
    @Girgoo 6 месяцев назад +12

    I would love to see a fuse system that cache usb-drive metadata only. Meaning I dont have to connect the usb-drive to my computer to check what files I had on it last time it was connected.

    • @thewhitefalcon8539
      @thewhitefalcon8539 6 месяцев назад +3

      I think Windows has that and calls it hierarchical storage management

    • @Slada1
      @Slada1 6 месяцев назад

      Everything from voidtools can do that too

  • @brennanlaurent4748
    @brennanlaurent4748 5 месяцев назад

    What about steam could you store files on steam using there cloud save feature

  • @GreatTS
    @GreatTS 5 месяцев назад

    Same here. First I watched your video related to Discord unlimited storage and then realised why didn't i used telegram and then i upgraded my code for telegram.

  • @devdetour
    @devdetour  5 месяцев назад +54

    1 correction, when I mention at 10:37 that Telegram is doing some encryption stuff and maybe that's why it's slow, this is incorrect. Though Telegram DOES support encryption, this was not an encrypted chat, so that wouldn't make things slow.
    Another clarification, I knew what RAR was before my last video, just not that it could break files into chunks and password protect them. I guess I phrased this badly :)

    • @Yoshidzo
      @Yoshidzo 3 месяца назад +1

      The thing you mentioned is actually about end-to-end encryption (E2EE). Every chat is encrypted by default. The difference is whenever this encryption is E2E (telegram secret chats) or client-server (default).

    • @DarkxPunk
      @DarkxPunk 3 месяца назад

      And to add, the data is not only encrypted to the server, it’s is obfuscated by breaking it into pieces and storing it on multiple servers so if only one server is access the data is junk.

    • @DeadCrusader
      @DeadCrusader 2 месяца назад

      Telegram Premium will increase the download speeds, and instead of telethon checkout pyrogram.

  • @kairu_b
    @kairu_b 5 месяцев назад

    Another great video!

  • @hoangduong5954
    @hoangduong5954 5 месяцев назад

    What about creating a bunch of google/microsoft account and store files in there?

  • @oussama7132
    @oussama7132 6 месяцев назад +24

    can you reduce the background music volume next time?

    • @devdetour
      @devdetour  5 месяцев назад +6

      Thanks for the feedback, I'll keep this in mind. Still trying to figure out the right audio levels :)

    • @toggenburger
      @toggenburger 5 месяцев назад +3

      @@devdetour please dont go way lower. often videos have comedically quiet background music. Guess its a matter of preference

  • @CodeF53
    @CodeF53 5 месяцев назад +2

    7z supports encrypting, splitting, and compressing files into chunks and has better compression ratios than rar.
    I would also use the brotli fork, as it has an even better compression algorithm.

  • @supernenechi
    @supernenechi 5 месяцев назад +3

    Yay, got into the video! Great video dude!

  • @esecallum
    @esecallum 5 месяцев назад

    MEGA does 50 gb ?

  • @czypherth
    @czypherth 5 месяцев назад

    what if you emulate how ssd works

  • @JyothisJayanth
    @JyothisJayanth 5 месяцев назад +13

    btw the teldrive owner got his own rclone fork that supports teldrive. I was using rclone mount and it was working perfectly fine :)

  • @mehregankbi
    @mehregankbi 5 месяцев назад +1

    did you also purchase premium? it's cheap iirc and it says speed does increase for premium users.

  • @edicarlosmartins1562
    @edicarlosmartins1562 5 месяцев назад

    Hey man! Could you mentioned in the description that people also can TELEGRAM-UPLOAD from Pypi?

  • @tomerbs440
    @tomerbs440 5 месяцев назад

    any windows alternative to FUSE?

  • @SMASHTheGamingCanuck
    @SMASHTheGamingCanuck 5 месяцев назад

    Wonder if Guilded would be faster then discord as it offers 500mb file upload limit

  • @om1431
    @om1431 5 месяцев назад

    Brother do you know how to link yt dlp on telegram

  • @hanspeter9636
    @hanspeter9636 6 месяцев назад +1

    Can it run DOOM?

  • @excessiveanalysis2982
    @excessiveanalysis2982 5 месяцев назад +4

    One thing I noticed in your design layout was the decision to encrypt each segment of the total file separately. While this does not affect functionality, it can impact the information security of the uploaded data.
    By encrypting each chunk separately, with what I assume is the same symmetric key, you run the risk of crypto-analysis on the file chunks revealing data on the key and or plaintext. The reason for this is due to the fact, because of the segmented nature of the encryption, you are effectively re-using the same key for multiple encryptions.
    While this is not a huge deal practically, it is still a possible attack vector. A simple solution would be to simply encrypt the entire file once, and then split the encrypted data afterwards.
    Other than that (unrealistic, you used CBC mode by the looks of it, so IV helps a lot) security vulnerability in a scheme that was made for fun, amazing video! I must say, I love over-the-top systems that solve problems in a way-more-than-necessary manner simply because it can 😂

  • @shubhsharma19
    @shubhsharma19 5 месяцев назад

    Can we do same thing with Javascript? if someone can update me on this coz i have no idea about python but i want to try this in JavaScript

  • @skygnd
    @skygnd 5 месяцев назад +1

    I’m from the future, you’ll have at least 500k subs by the end of this year man

  • @hwtw
    @hwtw 5 месяцев назад

    How about make telegram and discord on a raid like thing?

  • @TunisiaSparx
    @TunisiaSparx 5 месяцев назад

    awsome i always wanted to do omething like that ! uploading photos to some place and showing them dynamically from my deployed web app

  • @lancemarchetti8673
    @lancemarchetti8673 5 месяцев назад

    Great video!

  • @parkour_pain
    @parkour_pain 2 месяца назад

    You mentioned having to do some unconventional things to get the library to work for dlscord, what might those things be? I’m working on a different project but I’m needing to call functions in my bot too and I’m struggling

    • @parkour_pain
      @parkour_pain 2 месяца назад

      I’ll take any help I can get I would appreciate it so much I am very desperate

  • @ErikUden
    @ErikUden 5 месяцев назад

    Sure, these are “bad” download and upload speeds if compared to transferring files to a local drive, but what about enabling it to sync just like Nextcloud or OneDrive does? Wouldn't it be awesome to use this in order to have locally stored files backed up to the cloud. I could assume the Nextcloud client would be a huge help to implement something like this here!
    What do you think?

  • @Viralvlogvideos
    @Viralvlogvideos 5 месяцев назад

    how to make a video player that is hosted online but it uses telegram data

  • @ManIkWeet
    @ManIkWeet 5 месяцев назад

    A lot of specialized file download software can download a file using multiple connections simultaneously, maybe you can use that to improve speeds more?

  • @maciej.opalinski
    @maciej.opalinski 5 месяцев назад

    The caching scheme you implemented does not let you read files if they don't fit in RAM. Fuse manages data in chunks to allow working on files larger than free memory.

  • @nameq
    @nameq 5 месяцев назад

    On a TDLib level for telegram you can request parts of the file instead of the whole file from the storage

  • @JellyRockFN
    @JellyRockFN 5 месяцев назад

    Is this safe to store content in telegram?

  • @simon_roy
    @simon_roy 5 месяцев назад +1

    Can you get ban from telegram for doing this ?

  • @shabariks7735
    @shabariks7735 Месяц назад

    what about github private repository

  • @ivanromanchenko459
    @ivanromanchenko459 5 месяцев назад

    What if telegram will cut this feature?

  • @wrathofainz
    @wrathofainz 5 месяцев назад +1

    There are no good fuse tutorials in yt search, you should add fuselib or something to the tags or title of the video.
    I intend to use this for a personal server of mine if i can figure out how to get it working on my linux machine.
    Theres already some fusefs stuff going on under the hood so it can't be too bad... right?
    Edit: i downloaded the example script amd your telegram fusefs script as examples so hopefully I can make sense of it with those.

  • @Twisted_Code
    @Twisted_Code 5 месяцев назад

    FUSE sounds like it might be relevant to a problem I've had on my to do list to solve. Is this the same term used by the Windows ecosystem for the concept?

  • @DealazonDaily
    @DealazonDaily 5 месяцев назад

    I have an idea can you create an GUI for telegram only for uploading the files like if the members is free the file limit will be 2GB I'd the premium users is 4GB limit so if this idea create an GUI project is bit more powerful to use ??❤

  • @Sircliffe
    @Sircliffe 6 месяцев назад +2

    Store files on RUclips with digital data modes like OFDM-3500.

  • @Ðogecoin
    @Ðogecoin 6 месяцев назад

    thank you

  • @janoskarbukovsky1745
    @janoskarbukovsky1745 Месяц назад

    what about a yahoo?

  • @mizukun9037
    @mizukun9037 5 месяцев назад

    i wanna learn computer science like coding stuff how to start

  • @kabul891234
    @kabul891234 5 месяцев назад +4

    NIce, just installed teldrive, just make sure to use your own api id and hash

  • @jecksfoxofficial
    @jecksfoxofficial 5 месяцев назад +1

    Isnt telegram automatically download all files to ur phone?

    • @TheCollectiveHexagon
      @TheCollectiveHexagon 5 месяцев назад

      there's a config for that(even by file size) which you can enable/disable

  • @bananprzydawka7129
    @bananprzydawka7129 6 месяцев назад +15

    so like, when is someone gonna install arch linux on it?

    • @Spiderfffun
      @Spiderfffun 5 месяцев назад

      that would be hilarious, and im not sure if it's possible.
      Even if it was, there's probably hundreds or thousands of files your system accesses on boot, meaning the process might take very, very long. Not to mention the instability and general slowness of the system. A virtual machine tho.. I could give that a shot 🤔

    • @Grogueman
      @Grogueman 5 месяцев назад

      @@Spiderfffun Btw, do you use Arch LInux?

  • @weaksssas
    @weaksssas 6 месяцев назад +1

    i never thought of telegram for storage

  • @davia.sampaio8633
    @davia.sampaio8633 5 месяцев назад

    This is actually good if you dont want certain files on four system. This way you can just drop them on a "cloud" that has no connection to you

  • @zine_eddinex24
    @zine_eddinex24 5 месяцев назад

    Cool keep up 🆙 👍 😅

  • @ayte1549
    @ayte1549 5 месяцев назад +1

    It'd be fun to have a whole OS stored in telegram, and have your bootloader fetch if form there every time you boot up the PC.

    • @luizansounds
      @luizansounds 2 месяца назад

      Dude making a suggestion of how a data center can boot x3

  • @sassas4557
    @sassas4557 5 месяцев назад

    TIP: Try to send all the zipped files togheter and to download all of them togheter and then allow the user to modify, etc., so the flow should look like "read:download all (storing in temp)->check if they are all (by seeing witch are the missing ones checking their names from the DB file)->once they're all merge the file->show the file", " write: if the new file was used less then x time ago (ex. 2 hours ago), wait; else, move the file to temp->split in chunks->check and write to db->upload->check with db". Like 3 months ago, I tried to do the same thing by hand, separating the files with Winrar and uploading them slowly, and it worked, but if I have to upload a lot of things, it could get messy. PS: We also have to think about resuming upload after power-up and checking partially uploaded files during shoutdown, but it can be resolved by leaving the files in temp until they're fully uploaded with the checks mentioned before and other checks when booting and shutting down the PC (we write the queue of files to upload and download somewhere in the database to know what we were doing before the shoutdown). Nice video, keep on going man, I love these kind of things. Sorry for my bad english btw.

  • @MccTube
    @MccTube 6 месяцев назад

    I love it when you do this lol

  • @AnoshterHaar
    @AnoshterHaar 5 месяцев назад

    Does this provide any form of redundancy? Cause why would you otherwise even bother the slightest... There are zip programs out there making raid like redundancy possible for zip files. Multipar for example.

  • @Girgoo
    @Girgoo 6 месяцев назад +7

    Maybe it is better if you just sync the file in the background, possible make small chunks to have multiple upload run simultaneously?
    Now with 2 different providers(telegram + discord) you can actually have raid 1?

  • @kabuuu_voky
    @kabuuu_voky 6 месяцев назад

    Very nice

  • @notchieuwu
    @notchieuwu 5 месяцев назад

    i LOVE fuse stuff, i've tried to do a similar thing in windows with terabox because the client sucks, but it didn't work out

  • @MightyElemental
    @MightyElemental 5 месяцев назад

    sounds great for a backup system that has no guarantee the data will remain there 😅
    Those file upload speeds don't seem right though... Would adding more upload/download workers improve the performance? The data may need to be split into chunks for each worker, but it may be faster overall?

    • @AtaGunZ
      @AtaGunZ 5 месяцев назад

      I'm pretty sure it is rate limited per account or even per IP

  • @Jmcgee1125
    @Jmcgee1125 2 месяца назад

    This is honestly a pretty interesting example of filesystem optimizations. You're treating the network as a very slow SMR hard disk, and trying to find a way to optimize on top of that by adding your own (very large...) buffer cache with readahead. 10:57 :)

  • @KaptanUfuk
    @KaptanUfuk 5 месяцев назад

    yes. i found this method about 2,5 years ago but i never automated it, i couldnt do it. i was waiting for someone to do this application. thanks

  • @juuujuuu1564
    @juuujuuu1564 5 месяцев назад +5

    What about pings? You can give them data and they'll send it back. Just do that a lot of times a second sending data to different IPs and you're storing data.. over internet wires!

    • @Spiderfffun
      @Spiderfffun 5 месяцев назад +1

      I swear I saw a video like that already.

    • @juuujuuu1564
      @juuujuuu1564 5 месяцев назад

      @@Spiderfffun Please link it if you can find it! Would be interesting.

    • @Jsephos
      @Jsephos 5 месяцев назад

      @@juuujuuu1564 ruclips.net/video/JcJSW7Rprio/видео.html

    • @realminecraaftt
      @realminecraaftt 5 месяцев назад

      @@juuujuuu1564 ruclips.net/video/JcJSW7Rprio/видео.html

    • @devdetour
      @devdetour  5 месяцев назад

      Yes, someone has done this! ruclips.net/video/JcJSW7Rprio/видео.html. It's really really interesting!

  • @SysReset
    @SysReset 6 месяцев назад

    DAMNN

  • @MrPeepa
    @MrPeepa 5 месяцев назад

    Why not use read write streams for uploading and downloading. And then in the pipeline add a counter for the amount of chunks that got written or read.

  • @erikehlers7006
    @erikehlers7006 5 месяцев назад

    I have noticed, that the download speed is kinda slow even when you download files normaly. So I think it actually has to do something with their servers

  • @Hoopaugi
    @Hoopaugi 5 месяцев назад

    I completely forgot rar files were a thing. Don't really run into them outside of torrenting games.

  • @densxd
    @densxd 5 месяцев назад

    Isn't this not safe? Maybe your files,documents,text files etc... can be leaked some how? Or im wrong please comment i want to use this "type" system in my project thanks.

    • @kaidenrogers
      @kaidenrogers 5 месяцев назад

      Well the files are chunked, so someone would need to know how to re-assemble them. And as he said in the beginning of the video, they can be encrypted.

  • @heated1333
    @heated1333 5 месяцев назад

    How is this not a negative for telegram?
    I love telegram as a service, I don't think I'm a fan of potentially them bearing more load then they need to when the provide such an amazing service so cleanly.
    Is it reasonable to ask to rethink this? Maybe do it to someone like Apple?

  • @nourmagdi6031
    @nourmagdi6031 5 месяцев назад

    i loved the Rick and Morty reference

  • @gabrielebenedetti559
    @gabrielebenedetti559 5 месяцев назад

    figo, iscritta

  • @RajarshiKhatua100
    @RajarshiKhatua100 2 месяца назад

    unlim ?

  • @ohhim.
    @ohhim. 5 месяцев назад

    Oh man do we need a windows version of this

  • @MrImodre
    @MrImodre 5 месяцев назад +2

    fsync/fflush: exists
    devdetour: reinvented cache goes brrrrr

    • @devdetour
      @devdetour  5 месяцев назад +4

      I did actually look at pyfuse3's fsync(), but I don't think it behaves like a cache. As far as I can tell from the pyfuse3 docs (www.rath.org/pyfuse3-docs/operations.html#pyfuse3.Operations.fsync), it just passes the fh, not actually the data, so a separate cache is still needed - and I couldn't actually get pyfuse3 to call into fsync() in testing, so I kept it in release(). Maybe not optimal, but it works!

  • @tutacat
    @tutacat 5 месяцев назад

    Actually, HTTP supports something called download range, which only downloads the requested range from a file.

  • @Zeazy
    @Zeazy 6 месяцев назад

    genius

  • @user-wz7sx2ii3w
    @user-wz7sx2ii3w 5 месяцев назад +1

    Telegram really slow sometimes in uploading/downloading

  • @abasgames
    @abasgames 5 месяцев назад

    you can store your data on RUclips by uploading videos and use them as filesystem

  • @sipsip2367
    @sipsip2367 Месяц назад +2

    As much as i enjoyed this video, i dont think we should abuse telegram for cloud storage otherwise we will lose features of 2 gb free storage per file in the future.

  • @D0Samp
    @D0Samp 5 месяцев назад

    I see we have advanced pretty far from the time I used a free ad-supported web hoster with filesize limits and a PHP script to concatenate split files.

  • @nand3kudasai
    @nand3kudasai 2 месяца назад

    KISS
    instead of fighting against the cache. Upload the chunks and not the whole files.
    That would improve random access times in case you want to read or start reading from a random part.
    Pretty much the same way FAT stores files in chunks.
    It might even help if you implement some sort of parallelization in the pipeline.
    Ive seen mny of these tools, i find them interesting, i remember there was one to store files on email accounts (back when goggle falsely advertised infinite storage).
    Good job on using py fuse. Like others i would have used 7z to split and encrypt.

    • @nand3kudasai
      @nand3kudasai 2 месяца назад

      It will also improve your ram usage problem.theres a reason why libfuse uses samll chunks and youre basically going against that.

  • @ErikUden
    @ErikUden 5 месяцев назад +1

    Imagine you could sync with this like with Nextcloud ^ ^

  • @ALoonwolf
    @ALoonwolf 5 месяцев назад +1

    I didn't have enough storage space so I used RUclips to store all my videos, including my own film which took months of tedious work to make. Then RUclips deleted my channel, destroying everything. Don't trust online storage!

  • @undead2146
    @undead2146 5 месяцев назад +2

    tbh when you live in a country where an SSD costs an entire months paycheck, a free but shitty cloud service doesn't seem that bad.

  • @RottenCarrott
    @RottenCarrott 2 месяца назад +4

    Why not just use multiple accounts for Google drive 😭🙏

    • @skilletonqtr
      @skilletonqtr Месяц назад

      True much easier and logical 😅

  • @this-one
    @this-one 5 месяцев назад

    No need for Samba on your Linux host, if you want to run it on windows there is WinFsp, which is basically FUSE for Windows.