Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Yopp – A very quick way to transfer a file from phone to computer (github.com)
62 points by josephernest on Oct 25, 2017 | hide | past | web | favorite | 69 comments

For the Linux users: Try KDE Connect, it is amazing!

You can easily share files in both directions and you have a shared clipboard which makes exchanging short texts and urls very simple.

+ Phone notifications on your desktop! A really awesome piece of software that doesn't seem to get the attention it deserves.

AirDrop works pretty flawlessly if you're using an iPhone and Mac, which is fortunately + by choice my only setup / workflow.

Annoyingly, AirDrop works directly over wifi, meaning that you can't use it to transfer files between an iPhone (connected to router Foo via wifi) and a Mac that's 1. Ethernet-wired to the same router Foo, and 2. has no wifi support.

I'm not sure if (Intel-era) Macs without wireless cards/chipsets exist outside of Hackintoshes, but they're pretty common as Hackintoshes.

AirDrop also uses Bluetooth to detect nearby devices so you need that as well

Well you’re using a product built with specific hardware in mind with totally different, unsupported hardware. Apple doesn’t sell any devices without WiFi.

AirDrop is fantastic, I wish every platform had it.

For us AirDrop only works sometimes. It cannot be trusted to work.

We have two ipads, two iphones, two Macs. Some new, some old. In general AirDrop only works between some devices, depending on device ages and (I guess ;-) the moon in conjugation with Apple's stock index.

If it works, its only after waiting a while, switching BT off and on (maybe repeat that), meanwhile doing some praying...

or you can use ShareDrop[1]. No need to download any native app.

1. https://www.sharedrop.io

yopp - when you reinvent the wheel because you don't have airdrop

I'm reinventing a wheel available for any computer/phone instead of a wheel that can fit only on cars of a specific brand ;)

Here is how it looks like: https://i.imgur.com/KqcRwXY.gif

i.e. "upload with phone, get the file on computer"

I don't know if this is a known thing but my problem is in the reverse - getting things from my computer to the phone.

Things like screenshots, gifs, webms etc from my computer to any phone anywhere, without first uploading to imgur or Google Drive / Dropbox / some other Live File-sharing service.

Know of a simple tool that does that?

This would take care of that use case as well. It's a webapp that saves only a single file that can only be downloaded once. The idea is that the URL is only known to you. Pretty neat idea for personal file sharing.

It would be cool to have the computer show a series of QR codes with the encoded data, and an app on the phone that decodes them from the video.

Also, there was a 'modem' implementation in a browser posted a few days ago, that could be used to share URLs from phone to PC (if the PC has a mic).

Exfiltrating data can be non-nefarious.

I wrote a little tool to do this. It fires up Python's SimpleHTTPServer and presents the URL to the file with a QR code. Works great as long as the phone and laptop are on the same network.

For the other way I use the open source Android app "Share via HTTP" - it does the same thing.

Here's the shitty bash script (I stole the urlencode part from Stackexchange): http://termbin.com/3b04

I use the File Commander Android app. It has a great feature where it starts up a web server hosting a file explorer like interface of your phone, where you can download, upload, delete, move and such.

Works surprisingly well.

I have a mac and an Android phone. I use Pushbullet to send links, paste screenshots and it appears you can send files back and forth, too (I've never done it).

> my problem is in the reverse - getting things from my computer to the phone.

It also works in this direction with Yopp.

If you don't mind using an external service Pushbullet works quite well.

SFTP server on your home computer port-forwarded to the net, and an SFTP client on your phone?

1. Run an ssh server on the phone (may not seem simple to you depending on factors)

2. Bluetooth

It looks as if this tool can do just that...

Looks like a neat little project.

Quick question; why not split the PHP file into index.html and upload.php (or whatever)? I get that simplicity is key ("This one file does everything!"), but you could use that to build a couple more features (maybe some sort of PIN protection). Just throwing some ideas out there, cool utility nonetheless.

Edit: And by splitting the file you could allow other people to build little frontends like native apps or browser extensions.

This is very cool! But you need to have a device with a reachable public IP address. For those that don't, Micah Lee's https://onionshare.org/ is a decent option. But routinely, I just GnuPG encrypt stuff, and use https://file.io/.

Is there a solution that doesn't require you to type out the tedious URL http://asxmi4q6i7pajg2b.onion/egg-cain [1] for example, on your computer or your phone (when doing the reverse -- computer to phone) ?

Sometimes its not even a file but a block of text that you want quickly transferred from your computer to your phone or vice-versa that shouldnt require the use of a third party service.

I'm stunned to learn that there's really no such tool that lets you push URLs / Links / Text / GIFs / Screenshots between devices that you own & have on you.

There's QPush which has a Chrome extension and an app but really nothing else close to what I describe. [2]

[1] Onionshare - How to Use


[2] QPush


For block-of-text transfer between computer and phone I use qrencode [1] to encode text on my computer as a QR code, Barcode Scanner [2] on my Android phone to read the text or generate a QR code from text on the phone, and QtQR [3] to scan a code on the phone screen using my laptop webcam.

The QR code detection in QtQR is a bit uncomfortable (you need to press a key to confirm, while holding the phone into the camera) and requires me to set my phone screen to maximum brightness, but otherwise it works quite well. It doesn't really solve the problem for large files like images, but I have successfully used it with long HN comments I started on my phone but wanted to finish on my laptop.

[1] https://fukuchi.org/works/qrencode/ There's a Debian package you can just apt-get install

[2] https://f-droid.org/packages/com.google.zxing.client.android...

[3] https://launchpad.net/qr-tools

Well, if you have reachable public IPs, you can just SCP. Without reachable public IPs, you can setup Tor onions and OnionCat on both devices, and then SCP via OnionCat. Once you put the OnionCat /48 IPv6 in your hosts files, you just use hostnames.

What about Pushbullet. I've been using it for a while it seems to have meet a "good enough" requirement for me.

Zerotier.com has apps for iOS and Android and will give you a P2P virtual network with stable IPs.

Moreover, you can bind to one of these IPs and then it's only accessible from the ZeroTier network. If you own a domain name, then point a subdomain at that IP (which should be RFC1918-compliant) and then you've got files.mydomain.com only accessible via ZeroTier.

Thanks. I'll check it out. I've played some with tinc and peervpn, and an old Russian one whose name I don't recall. This sounds somewhat like that. But maybe much more polished.

I may be not using the latest and greatest, but email works pretty well for me... if I need more than 10mb, I use wetransfer. Sure it goes through the internet, but yes I don't want to think more than 1second about how to do this.

Yes but then, you have to think about deleting it once it's downloaded (or you'll have a growing email box), or ask WeTransfer to delete the files... See https://github.com/josephernest/Yopp/blob/master/README.md#m...

Wetransfer delete the file after 7 Days for a free account and after 4 weeks with a pro account.


With Yopp, we use 7 atomic actions to perform the task (see https://github.com/josephernest/Yopp/blob/master/README.md#m...).

I tried with WeTransfer and we have 10 taps/clicks + 16 alphanumeric characters to type on keyboard:

    Open browser on phone [1 tap], Open wetransfer page [1 tap if in bookmarks], "Take me to free" [1 tap], "I agree" [1 tap],   
    "Add your files" [1 tap], Choose the file [1 action], "..." round icon [1 tap], "Send as link" [1 tap], "Transfer" [1 tap].   
    Open browser on computer [1 double click], write URL [at least 16 alphanumeric keystrokes], e.g. we.tl/aqNXmKTjFO

termux + woof

woof -i <ip_address> -p <port> <filename>

termux: https://play.google.com/store/apps/details?id=com.termux&hl=...

woof: http://www.home.unix-ag.org/simon/woof.html


1. Allows directory upload/download (tar/gzip/bzip2 compressed)

2. Local file server (doesn't go over the internet)

3. Allows upload form (-U option)

4. Allows file to be served <count> number of times (-c option)

The key thing with Yopp is that it only requires 7 actions: https://github.com/josephernest/Yopp#minimalist-ux.

Nice solution

Termux is also on F-droid, thankfully for those without Google Services:


"Have you ever spent more than 1 second wondering"

They should add:

- Run a static file server but huh, I don't have a full blown web server and/or php installed on my work station.

Seriously, I think syncthing provides a rather good solution for this problem. You have to install it on every machine though.

> They should add:

> - Run a static file server but ...

Not really. To do a fair comparison, the three examples that I've listed are things you have to do each time (finding USB cable, or logging in the webmail, or opening Dropbox, etc.)

Here installing the PHP on a server is something you do only once for all.

Their premise is x <-> y.

Saying "I can run `python -m SimpleHTTPServer`" doesn't help- it's not the problem they seem to be solving. Or am I wrong?

From what I gather, it's a php page. You upload 1??? file or download that file - for that you have to know the URL. So it's rather x<->anyone who knows the URL.

sharedrop.io works great for devices on the same wifi network.

There is also pushbullet - I generally take screenshots and like to transfer to desktop. I can 'share' a screenshot I took using pushbullet and it will appear in a new browser tab in my desktop, and then I can save it.

I recently wrote https://justa.ml

Was looking for something ready-to-use and simple (without login or giving too much details) for the situations when AirDrop or PushBullet <3 is not an option.

Hastily written code code is available at https://github.com/mustakimali/JustA.ML Learned a thing or two about end-to-end encryption while working on that.

This is cool.

put on old man’s hat

I remember in the good old days of flip phones, I just use Bluetooth OBEX to locally transfer the file(s) to another Bluetooth enabled device. It’s a bit slow but otherwise works fine. It was simple too—just select the picture, hit send via Bluetooth, select the receiving Bluetooth device, and hit Send. All these file transfer over the cloud using google/Dropbox/amazon/etc for local devices feel like Rube Goldberg to me...

done ranting

How do you transfer a bunch on pictures rather than just one ? I just go in the gallery, select the pictures and share them with Box. Would be the same with Dropbox, can't you keep the connection active on both sides? (no need to type the password)

Is there a way a web app can add itself to the Android ACTION_SEND intent list? That would make it simpler.

Please ping me if you find a solution for this (please post on https://github.com/josephernest/Yopp/issues), I'm highly interested!

AirDrop not work on my side. I have iOS 10 and OSX El Capitan. Maybe this is a reason but I do not want really to update it.

Instead of Airdrop I'm using Telegram messager and share files to myself. It's quick and I'm always have access to them in the cloud.

You're not alone. I have High Sierra and iOS 11 and still find it to be finicky. Of course, it was worse with prior OSes, but even now I find it takes a long time for devices to "find" each other when transferring from iOS to MacOS, or vice-versa. I seriously end up using Dropbox sometimes because Airdrop won't work.

The real key idea of this tool is to require 7 actions only: https://github.com/josephernest/Yopp#minimalist-ux.

Very nice idea. Since I'm a newb at PHP, I would prefer it to be in a language I can hack in, but this is a clever way to solve one of the most annoying problems in the world :-)

(I totally do the Google Drive thing right now)

If you're a newbie at PHP, it could be fun to read the code: there's < 50 lines of PHP code, and that's it :)

Shame the server needs to be there. Would be good if you could do some auto negotiation between two browsers.

Partner 'still' has failed to liberate photos from smartphone.

You can do something similar with https://www.qkast.com and web content.

Alternatively: https://send.firefox.com/

Yes but not really. Imagine it is uploaded on phone. The URL is https://send.firefox.com/share/bec9e0497c. Will you spend 30 seconds writing this URL in the URL bar of your computer browser? (oh no, I made a typo in the URL, let's start again...).

Once again, the idea with Yopp is 7 atomic actions and no more: https://github.com/josephernest/Yopp#minimalist-ux

>Will you spend 30 seconds writing this URL in the URL bar of your computer browser? (oh no, I made a typo in the URL, let's start again...)

Firefox lets you send a tab/link to another device (if you use Firefox sync). No typing necessary.

>Yopp is 7 atomic actions and no more

I like the UX well enough, but calling it just 7 actions completely ignores that you need to have an internet facing webserver with PHP, configured. Many of us here could arrange that pretty easily, but it greatly adds to complexity versus using an existing web-service.

Oh that's interesting, I didn't know that about Firefox sync. How does it work? You connect, once for all (with a login/pwd?) 2 browsers (e.g. phone Firefox and computer Firefox)?

Then you go to send.firefox.com, on phone, and you upload a file. And then how do I get the tab with the right URL on the PC? I guess I open Firefox, and then how can I see "tabs opened on my phone"? (Would you have a screenshot?)

Yes, you set up Sync once on each device, with a password. You can configure what you want to sync (bookmarks, tabs, preferences, ...). I only sync bookmarks, those just appear automatically. I never tried syncing tabs. I see now there is a "Sync now" command in the old Alt-menu, and a "Synced Tabs" window in the new hamburger-menu, but I never used those.

Screenshots: https://imgur.com/a/QkhNQ


The beauty of this lies in how simple it is. I love it!

Ummm Google Drive?


If you count everything (opening Airdroid app on phone, choosing the file, opening airdroid on PC, etc.), how many actions (including every click / tap) does it require? See https://github.com/josephernest/Yopp#minimalist-ux.

You're not wrong but I don't have to run a server to use Airdroid.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact