What are the challenges of making a video only mobile client like TikTok?
Discussion
Biggest challenge is having to deal with video editing and rendering in an efficient (bandwidth/CPU) way. Video libraries for devs are few and full of junk. Video formats are annoying and mobile CPUs vary their support for them. The dev will likely recode rendering, compression and editing components from scratch. Especially if going with a native app.
Second issue is language/i18n for video and audio. The dev must either lock people down to their own language silos or find ways to translate audio and video text references without centralized services.
Third issue is related to replies/video boosts and the ability of viewers to join the discussion with their own videos. Most of what TikTok does is about getting people to copycat content extremely easily, creating a larger sense of community.
Thank you. So… a lot of not very fun things to do.
- hosting costs
- variety in content
- questions about algorithms
curious what vitor will respond
1. Paid hosting plans
2. early bird gets the worm
3. Sort by popular for starters
people aren't willing to pay for nostr.build during damus usage as things stand, what makes you think they suddenly would with a nostr tiktok, with less and lower quality content, as shorts/reels/tiktok are free
popular, following and explore tabs/dropdown selections i'd imagine 🤔
Different audience. Regular user vs content creator
With the operational investment of algorithm technology and talent, titok's content barriers are already very high.
Skip the algo?
skip the algorithm and it's not tiktok, it's Instagram. tiktok without an algorithm is worthless, just a video player.
So Instagram is worthless?
🤣LOL. No, just tiktok.
instagram has an algorithm, too, just not as good as tiktok. I'm under the impression that nostr initially had a project to copy ins, but I don't seem to have seen any progress.
It was never like Instagram. Not even sure why it was called similar. It had lots of progress but was cut short by developer’s full time job.
I'm not sure, because I think they were promoting it like this at the beginning of last year. I don't mean any harm.
Tiktok algo is good? Hum, TikTok algo is weaponised.
What insta used to be (an app mostly used by photographers) is so different from what it is now (a PR and marketing machine)
nostr:npub1r0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgs4sq9ac am I dumb to think that a client focusing only on notes with the wanted kind is all that is needed as a first step to emulate TikTok? Throw in some client side custom filters to create customizable feeds for catch up and discovery?
The client needs to know that the note contains portrait videos, and filter out the rest.
you must have your own content creators
- Smooth Performance (native Apps needed)
- Storage & Bandwidth Costs (app needs to be free for users IMHO)
- Video creation / recording / editing from within the App
- Claims / DMCA
Algos wouldn't be needed at first. Tags/labels and popular filter will get us pretty far. We need a large number of content and users for algo recommendations to work well.
Isn’t zap.stream a tiktok like client?
What just fork it serve portrait videos. 🤷🏻♂️
It’s not. Zap stream doesn’t support uploads. Only streaming
Yes yes. But it’s the same functionality. You can playback streams. So it already hosts the videos.
It’s 50 lines of code away from being a TikTok like client.
Did you hear that nostr:npub1v0lxxxxutpvrelsksy8cdhgfux9l6a42hsj2qzquu2zk7vc9qnkszrqj49 ?? It’s only 50 lines of code! Let’s goooooo!
Argh, fair point, they need to upload it too.
Log in.
Select or purchase access to the desired CDN.
Customise your feeds.
Browse only notes with desired kind and tags.
TikTok’s strength is really in the creation tools built in.
The app is miles ahead in video editing capabilities in comparison with anything else.
And of course their “algorithm”
Let’s build creation tools 🛠️
Yeah, That’s what would make the experience of upload videos seamless.
Even something as simple as the hold to record a segment, release to pause recording, and a delete last recorded segment button. Would make a huge difference. Then slowly add other features like adding text overlays.
Are there no OpenSource ones out there in the wild?
Gotta be something
Most of the people I know that use TikTok (and keep sending me links I refuse to even open) do not care about that. They mostly want their bubble.
The good thing with nostr is that the creation client does not have to be the same as the consumption client.
If that makes any sense…
You could have a video creation client that could work for both YT clones and TikTok clones. Most of the tools would be the same.
True but…
Recording on one app, exporting, going to another app, and uploading. Is a very long process in comparison to record -> publish.
I’m just considering the broader nostr, and that fact that many content creators publish to multiple platforms. Sometime the exact same content, sometimes variations of the same content. Of course, that does not apply to all.
My point is, you can create a tik tok like experience for many tik tok users without the needs of fancy video making features. It is estimated that only 55% of TikTok users actually upload content (how much of that is simply dance videos?). TikTok is used by an estimated 18% of global internet users.
Agree. I think you could get far without creation tools even
Professional creators likely use their own tools already not what’s built in. And they are probably responsible for 80% of the content anyway
the algorithm is really what makes Tik Tok tick (very sorry for this pun)
it's not just about determining what to show a user on their For You page to increase their engagement and app use time but it also is about whether a tiktok video that they made should show up on other people's fyp.
How does tiktok know what videos and creators to serve to others? It's easy when that creator has an existing track record but how does it determine whether a new creator is worth serving to others? They have to promote new creators because that how you find talent and keep the content fresh on the platform.
when a new creator who has zero video making and editing experience uses the built in video creation tools to make their first video and it goes viral with a million views because TT made it so, it gives that person a sense of "oh shit, I could totally make it big on this platform." Maybe they do, maybe they don't. spoiler alert: most don't and they spend the rest of their life chasing that high. While they're chasing, they become very loyal (read: addicted) users of the app while also generating new content that could possibly be the next big thing.
Paying for bandwidth and storage space.
not if users are serving their own content from personal servers
Not everyone wants to do that or can feasibly do that. Therfore, a service will exist to do that and that service will cost the person who wishes to use that service.
You are right, which is why spinning up a remote personal server should be as easy as minting an NFT and logging in with your wallet. "installing and running services" is just buying other "apps-as-NFTs". This is what Vaporware makes possible:
I'm not familiar with that concept, though I am working on an umbrel install on a proxmox server.
That's not as easy as what you're seeking to propose, though. Hmmm...
Indeed, it is a fairly novel concept but one that has been proven out by Urbit (urbit.org) over the last decade.
The core innovation that makes it possible is the Solid State Interpreter (see the vaporware site for links) - something like an event log-bssed virtual machine that is extremely simple and durable. end users "just start the binary" and never have to do any setup or maintenance.
A docker image is probably the closest thing that approximates the concept (though it's different in a lot of very important ways)
if the answer doesn't involve "every user is also the host and server of his own content/there is no custodial media host" then it's not the correct answer.
?cid=2154d3d7uor7bsx8au4mw5pcg98l23xb1en2gmadivecnqe8&ep=v1_gifs_search&rid=giphy.gif&ct=g