Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Is there a way to hide URLs to prevent source from being exposed?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Is there a way to hide URLs to prevent source from being exposed?

sgno1sgno1 Member

Is there a cheap way to hide URLs to prevent the source from being exposed? I have a few videos that I would like to share, and I'm searching for a cheap solution. One could be using PHP to pass the video as a header but through the networking tab the source can still be found.

Is there any alternative solution for this (any programming language works)? I could download the videos from the link and serve them that way but my server is just not fast enough to do that for each new video that would be requested.

Any help, suggestions or tips would be appreciated!

«1

Comments

  • stefemanstefeman Member
    edited May 2021

    You cannot hide publicly visible content that the client has to execute and playback.

    You can prevent it from being downloaded though by the average joe with DRM tools. But even netflix videos get ripped from the browsers which is why they don't show 4K content via browsers.

  • sgno1sgno1 Member

    @stefeman said:
    You cannot hide publicly visible content that the client has to execute and playback.

    You can prevent it from being downloaded though by the average joe with DRM tools. But even netflix videos get ripped from the browsers which is why they don't show 4K via browsers.

    I just want to prevent the source from appearing.
    i.e. SSHFS main server to a cheap server to serve files.

    I was wondering if there is anything else.

  • stefemanstefeman Member
    edited May 2021

    @sgno1 said:

    @stefeman said:
    You cannot hide publicly visible content that the client has to execute and playback.

    You can prevent it from being downloaded though by the average joe with DRM tools. But even netflix videos get ripped from the browsers which is why they don't show 4K via browsers.

    I just want to prevent the source from appearing.
    i.e. SSHFS main server to a cheap server to serve files.

    I was wondering if there is anything else.

    Then mount the filesystem remotely if you want to playback warez from hetzner storage server.

    There are NFS, MergerFS and other tools to treat remote content as local files and cache them locally to the infirging server which servers the files on the website from its own IP.

    That way only the host machine knows where the files actually are and the links appear local.

    If you want to serve remote videofiles on semipopular site behind 1Gbps downlink/uplink without any lag, you would need something like rclone+MergerFS or NFS+MergerFS with 500-1000GB minium cache space on the machine reading the data from the storage server and high read-ahead values for configs.

    Downside is, that this only reads files at 100MB/s max from the remote server disk, so you essentially have a 5400RPM HDD as source with only 1Gbps downlink on both servers. To match the speed of your spinning rust, you would need minium 3Gbps on both servers.

  • The question is pretty vague, I'm assuming you're building a YouTube like thingy and don't want people hotlinking your shit.

    @sgno1 said:
    I just want to prevent the source from appearing.

    You can't, the user has to know the source otherwise how would their browser play it back? What you can do is make it hard for them to rip the content off (DRM, ACLs, streaming, many ways to skin the cat).

  • yoursunnyyoursunny Member, IPv6 Advocate

    I have a YouTube like thingy and nobody knows how to download my source because I have a custom protocol.
    https://pushups.ndn.today

    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

  • sgno1sgno1 Member
    edited May 2021

    @stefeman said:

    @sgno1 said:

    @stefeman said:
    You cannot hide publicly visible content that the client has to execute and playback.

    You can prevent it from being downloaded though by the average joe with DRM tools. But even netflix videos get ripped from the browsers which is why they don't show 4K via browsers.

    I just want to prevent the source from appearing.
    i.e. SSHFS main server to a cheap server to serve files.

    I was wondering if there is anything else.

    Then mount the filesystem remotely if you want to playback warez from hetzner storage server.

    There are NFS, MergerFS and other tools to treat remote content as local files and cache them locally to the infirging server which servers the files on the website from its own IP.

    That way only the host machine knows where the files actually are.

    It's not warez and I don't own any hetzner servers. I'm just trying to achieve a way to play videos without the source appearing. Like using NFS/SSHFS etc from my initial server to a cheaper server. But was hoping there is a way to at least change the URL or something.

  • sgno1sgno1 Member

    @yoursunny said:
    I have a YouTube like thingy and nobody knows how to download my source because I have a custom protocol.
    https://pushups.ndn.today

    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    How did you achieve it?

  • stefemanstefeman Member
    edited May 2021

    @sgno1 said:

    @stefeman said:

    @sgno1 said:

    @stefeman said:
    You cannot hide publicly visible content that the client has to execute and playback.

    You can prevent it from being downloaded though by the average joe with DRM tools. But even netflix videos get ripped from the browsers which is why they don't show 4K via browsers.

    I just want to prevent the source from appearing.
    i.e. SSHFS main server to a cheap server to serve files.

    I was wondering if there is anything else.

    Then mount the filesystem remotely if you want to playback warez from hetzner storage server.

    There are NFS, MergerFS and other tools to treat remote content as local files and cache them locally to the infirging server which servers the files on the website from its own IP.

    That way only the host machine knows where the files actually are.

    It's not warez and I don't own any hetzner servers. I'm just trying to achieve a way to play videos without the source appearing. Like using NFS/SSHFS etc from my initial server to a cheaper server. But was hoping there is a way to at least change the URL or something.

    Read my edited post again.

    You would put the mount point directly to the folder which shares videos and which is the root folder for the webserver to grab the videos. This folder would have 500-1000GB cache which keeps the most recent and most requested stuff always in it, and anything else, it cycles the local content by request. By default the entire remote library appears local with MergerFS so the webserver is able to browse and request everything, but once it accesses a file thats not cached locally, your server just uses additional download bandwidth to read/serve it realtime. This way there is no change to URLs.

    Its literally like NFS, except some files in the list are also found locally for faster access without the server needing to download and serve it real time, and thus wasting bandwidth on popular stuff. In most simple terms.. Imagine browsing a folder in WinSCP which you know is actually mounted remote folder. You can see files and folders in this specific mounted folder. These files and folders can be either 100% remote or local+remote, but they all show just same in the filesystem and any GUI.

    Thanked by 1errhead
  • yoursunnyyoursunny Member, IPv6 Advocate

    @sgno1 said:

    @yoursunny said:
    I have a YouTube like thingy and nobody knows how to download my source because I have a custom protocol.
    https://pushups.ndn.today

    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    How did you achieve it?

    It takes years of education and experience.
    Everything is open source.

    Website: https://github.com/yoursunny/NDNts-video
    Video repository: https://github.com/yoursunny/NDNts-video-server
    QUIC gateway: https://github.com/yoursunny/NDN-QUIC-gateway

    Blog posts:
    https://yoursunny.com/t/2021/NDN-video-reality/
    https://yoursunny.com/t/2021/NDN-video-QUIC/

    Thanked by 2Aidan daxterfellowes
  • jsgjsg Member, Resident Benchmarker

    @sgno1

    Maybe I've misunderstood you, but how about a simple reverse proxy and/or a server script that creates new URLs (random) for each request.

  • 0xbkt0xbkt Member
    edited May 2021

    @yoursunny said:

    @sgno1 said:

    @yoursunny said:
    I have a YouTube like thingy and nobody knows how to download my source because I have a custom protocol.
    https://pushups.ndn.today

    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    How did you achieve it?

    It takes years of education and experience.
    Everything is open source.

    Website: https://github.com/yoursunny/NDNts-video
    Video repository: https://github.com/yoursunny/NDNts-video-server
    QUIC gateway: https://github.com/yoursunny/NDN-QUIC-gateway

    Blog posts:
    https://yoursunny.com/t/2021/NDN-video-reality/
    https://yoursunny.com/t/2021/NDN-video-QUIC/

    Hmm, can you serve a few petabytes a month via NDN? And what happens if those university servers go offline? Who controls them? Just curious...

  • jarjar Patron Provider, Top Host, Veteran
    edited May 2021

    Reverse proxy. Server 1 pulls it from server 2 and delivers to client, client has no idea server 2 exists.

  • @yoursunny said:
    I have a YouTube like thingy and nobody knows how to download my source because I have a custom protocol.
    https://pushups.ndn.today

    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    Security through obscurity is probably the worst way to prevent someone from attacking you :)

  • jmgcaguiclajmgcaguicla Member
    edited May 2021

    @drunkendog said:
    Security through obscurity is probably the worst way to prevent someone from attacking you :)

    Nah, I don't think he means it that way nor is he banking on it not being broken in the future (inspect the WS messages, you'll be able to easily get a rough idea of what are in those and a quick peek at the video player repo you'll be able to figure out how the requests get fired and returned).

    It's just that nobody can rip it off the site (for now) because people haven't picked up on the protocol, existing techniques don't work, and don't have tooling do it easily.

    Thanked by 1wpyoga
  • yoursunnyyoursunny Member, IPv6 Advocate

    @0xbkt said:
    Hmm, can you serve a few petabytes a month via NDN?

    For Named Data Networking as a technology, petabytes isn't a problem at all.
    I have NDN forwarding software that operates at 100Gbps speed, so that you can push 32 PB/month on a single node.

    And what happens if those university servers go offline?

    The university servers are part of the global NDN testbed.
    They run slower software and generally have 1Gbps connection.

    My push-ups site is no longer fully dependent on the testbed.
    I'm now operating my own NDN network using KVM servers.
    There are 7 routers in my network at the moment, interconnected via UDP-IPv6.
    They have the same software as the testbed, including NDN link state routing.
    Since I can only afford 1GB RAM on each router, my network has less capacity than the testbed.

    When you visit https://pushups.ndn.today , the website queries NDN-FCH service that returns several nearby routers.
    Frontend connects to each router via WebSockets or HTTP/3, and selects the fastest connection.

    Currently my network is configured to accept HTTP/3 and WebSockets-IPv6 only.
    In case there's a total failure of the global NDN testbed, I can enable WebSockets-IPv4, and continue delivering push-ups from my own network.

    Who controls them?

    The global NDN testbed is controlled by Washington University in St Louis.


    @drunkendog said:
    Security through obscurity is probably the worst way to prevent someone from attacking you :)

    @jmgcaguicla said:
    Nah, I don't think he means it that way nor is he banking on it not being broken in the future (inspect the WS messages, you'll be able to easily get a rough idea of what are in those and a quick peek at the video player repo you'll be able to figure out how the requests get fired and returned).

    It's just that nobody can rip it off the site (for now) because people haven't picked up on the protocol, existing techniques don't work, and don't have tooling do it easily.

    You could download my videos if you read the code.
    Everything you need is in my libraries.
    If you read the code and learn the protocol, I'll be happy to give an award.


    When we have a large enough NDN network (thousands of routers), having more people hot-linking a video would retrieve the packets into caches near the viewers, which improves playback quality for everyone.

    In the short term, my KVM servers would run out of 2000GB monthly transfer and go offline!
    However, I have never used more than 50GB in any month … (excluding YABS)

  • errheaderrhead Member

    Stefeman
    I've been doing something like that using straight SSHFS, sounds like mergerFS will greatly improve performance
    thanks.

  • @errhead said:
    Stefeman
    I've been doing something like that using straight SSHFS, sounds like mergerFS will greatly improve performance
    thanks.

    Rclone with mergerFS works best for me.

  • team_traitorteam_traitor Member
    edited May 2021

    If it were me I will create a PHP script that requests the source video and play it like it is a part of the page. If the viewer wants to see the source they will see something like this "mydomain.com/view/play/23989931" instead of 'source-hotlink.com/video/sourcelink'

    and since it is a part of my page. I can add a login form to limit the video to subscriber-only hahaha

  • FAT32FAT32 Administrator, Deal Compiler Extraordinaire

    @yoursunny said:
    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    Done.

  • CConnerCConner Member, Host Rep

    @FAT32 said:

    @yoursunny said:
    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    Done.

    kek

  • sgno1sgno1 Member

    @team_traitor said:
    If it were me I will create a PHP script that requests the source video and play it like it is a part of the page. If the viewer wants to see the source they will see something like this "mydomain.com/view/play/23989931" instead of 'source-hotlink.com/video/sourcelink'

    and since it is a part of my page. I can add a login form to limit the video to subscriber-only hahaha

    To serve through PHP it requires a lot of resources, if you are talking about downloading the source and reading through PHP.

  • sgno1sgno1 Member

    @stefeman said:

    @errhead said:
    Stefeman
    I've been doing something like that using straight SSHFS, sounds like mergerFS will greatly improve performance
    thanks.

    Rclone with mergerFS works best for me.

    Any tutorials anywhere?

  • sgno1sgno1 Member

    @jar said:
    Reverse proxy. Server 1 pulls it from server 2 and delivers to client, client has no idea server 2 exists.

    I'm curious how this is better than the SSHFS/Rclone method?

  • sgno1sgno1 Member

    @jsg said:
    @sgno1

    Maybe I've misunderstood you, but how about a simple reverse proxy and/or a server script that creates new URLs (random) for each request.

    Imagine I have 'https://somedomain.com/video.mp4' if there is a way to change it to 'http://somedomain.com/72hxhz8a929sd0idn29vczbe' or something it would be better (and show that in the networking tab too). But the only way to do that is by re-serving the files by downloading them each time on each request.

  • sgno1sgno1 Member

    I could SSHFS a local directory and serve through a Node.js Script but not sure how reliable this method is.

  • WilliamWilliam Member

    I just use rclone and Google Apps for my 50TB Movies/Series. But i don't give others access to my Emby mostly, so rclone is fine performance wise. Google does not care about the space use.

  • sgno1sgno1 Member

    @William said:
    I just use rclone and Google Apps for my 50TB Movies/Series. But i don't give others access to my Emby mostly, so rclone is fine performance wise. Google does not care about the space use.

    I did try rclone with a bit of Google Drive but it was too slow for me, what mount options are you using? Each video would take at least 30 to 40 seconds to load

  • WilliamWilliam Member

    No issue for me, Emby starts after around 5seconds, including start of transcode.

    I use default mount options, no special config, on a 2Gb VPS on Ubuntu 20 with Emby to stream.

  • yoursunnyyoursunny Member, IPv6 Advocate

    @FAT32 said:

    @yoursunny said:
    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    Done.

    You are really good!
    Come to our next NDN hackathon, maybe?

    I'll record another push-up video in your honor, within a month.

    Thanked by 1FAT32
  • @yoursunny said:

    @FAT32 said:

    @yoursunny said:
    First person that successfully downloads a video (must be the actual file or packets; screen recording doesn't count) will get an award.

    Done.

    You are really good!
    Come to our next NDN hackathon, maybe?

    I'll record another push-up video in your honor, within a month.

    what about the award

    Thanked by 3dosai jsg lentro
Sign In or Register to comment.