lastmjs / podcrypt Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
So, two big issues with downloads are the proxy that I have to maintain, the 404s that it causes sometimes, the lack of MSE support in all browsers, and the lack of mp4 segmented file support for MSE. Being able to download audio from an audio element could fix all of these.
Imagine, what if we could record audio from an audio element and save it to IndexedDB. I already know that the audio element supports streaming everything that I've thrown at it. I believe I can record audio from the audio element. If I were somehow able to greatly speed up the playback and record it, I could maybe mimic the speed of file downloads, and save a universal format to IndexedDB. This could be a potential solution. A problem I can see is the maximum playback rate. I believe it's 16x in Chrome and FireFox. This shouldn't be too bad, but is probably longer than it would take to just download the file. Also, browsers mute the audio element after going above a certain playback rate, I'm not sure if the muting would show up in the recording. Also, would the recording be sped up as well?
I want to see how big this market is potentially. Use subscription numbers, put in the ability to see how much money is possible to be flowing under various circumstances, various numbers of people how adopt, the percentage I take, their intervals and the amount they give. Get a rough liberal and conservative estimate for the market cap here.
I think it would be useful to publish a "whitepaper" of sorts that clearly explains the vision of Podcrypt and the model that it exhorts.
I've got one podcast producer onboard who has already published his Ethereum address, with one close behind I'm hoping. I think it would be a good idea to write a new condensed email, combining a short but sufficient description of the idea with a call to action which includes putting their ethereum address in the description of their podcast. I have enough positive feedback from round 1 of validation that most podcast producers like the idea. I don't need explicit feedback any more, I just need them to either add their address or not. This is the sale to them, if they actually do it they have bought in.
To further expand the TAM to non-crypto enthusiasts, we need to provide a fiat onramp. The simplest way to do that is to layer on a fiat onramp on top of the DApp, so everything still happens through crypto under the hood and in the interface, but users can buy ETH or DAI with their credit or debit cards...something like this should work: https://limepay.io/
Helpful: https://googlechrome.github.io/samples/service-worker/prefetch-video/
Helpful: https://stackoverflow.com/questions/37612177/cannot-play-cached-audio-from-service-worker
So, see if we can cache the urls dynamically for certain audio files, the ones that the user asks for.
Now remember, I ran into some interesting issues with the service worker and media requests, and I don't remember exactly why. I think it had something to do with range requests. I believe the above resource will help with that
These are issues that we cannot fix on our own (at least we think so). We'll have to reach out to others to get them fixed:
I think this could be extremely effective. My Twitter consumer validation is going very well. The next step is to get actual potential users to do something, and to start gathering email addresses or creating a Telegram group or some other type of group to start creating a following and a community. I think I want to start infiltrating crypto communities and marketing this app as a new dapp to see who would be interested in using the dapp. I want to get somewhere between 100-1000 people to join the Telegram group or give me their email addresses before continuing on to the MVP or a Kickstarter. Perhaps this doesn't need to be a landing page, but could just be an article. The call to action could be the email address, Telegram group, or a Google Form survey, though I'm feeling more and more confident that I might not need a survey and I generally know what people will say. Hopefully more data will continue pouring in from my outreach
The strategy that I think is reasonable to pursue is slowly increasing our total addressable market over time. For the current scope of Podcrypt, I believe the Total Addressable Market consists of all avid podcast listeners. If we were to saturate the market, these are the only people that would be possible to use our platform. But, we are far from appealing to these people. At launch, we'll be addressing a subset of avid podcast listeners, those which are crypto or blockchain enthusiasts. Even amongst them, we'll only be addressing Ethereum users. Even amongst them, we'll only be addressing early adopters who are willing to switch to a less-featured podcast player. I believe at the bottom, we have a very targeted customer segment, and that will be good to launch into. As the prototypes or MVPs progress towards the end product, we should be conscious of how to continue expanding into new areas of our TAM.
For some reason, only the /podcasts route is returning raw html rendered to the browser...the / route works fine. Since they are essentially equivalent, I'll just get rid of the /podcasts route for now, but we might want it back in the future.
We have a number of performance issues that are popping up.
Platforms like Cent might want some kind of audio embed solution that can hook into donations...
Check estimates here: https://www.buybitcoinworldwide.com/fee-calculator/
We might be able to do this. By setting an expected inclusion number of 24-48 blocks (within about 8 hours), and batching all payouts in one transaction, we might be able to keep the Bitcoin fees to a few cents per entire payout. I'd bet that anything under $1 per entire payout would be acceptable to the user. We could start off with a sensible default, and then let the user change the settings as they please.
Create a spec for the namespace or namespaces. Allow proposals. Make it free and open.
I'm experimenting with a short Twitter reachout to combine rounds 1 and 2 for producers, I left off on Historic Greatness
This is so strange. Loading podcrypt.app/credits loads index.html as plain text. The same thing happens at javascriptpractice.com/credits...it doesn't happen in local development, I wonder if it is a Zwitterion thing or a Netlify thing. It's very strange, probably reach out to Netlify and see if they have any ideas
To get the absolute best experience possible on Android and iOS devices, we'll need some browser features fixed by the Chromium and WebKit teams. Here are some of those issues:
It would be excellent to port ETH Gas Station to GraphQL. Seems like the best way to do this would be through creating a The Graph Subgraph. I've already started discussing it with some people on Twitter: https://twitter.com/lastmjs/status/1108860801039818752
I'm relying on https://jsonp.afeld.me for now to do cors requests from the browser, considering feedburner and potentially some other rss hosting services aren't setting the allow-origin whatever headers, so I can't parse the feeds correctly from the browser...they don't return xml, they return html.
So, there are a few issues with blob storage right now...sometimes when downloading a file, the file itself seems to be too large to be saved. Also, some large files that are successfully saved cause Chrome on Android to crash when being turned into a Blob URL. Also, loading these files seems to take a while sometimes when setting the source for the first time...a possible solution to all of these issues is to chunk up the audio files. So, when downloading a file, we could chunk it up into 10mb pieces or something, and save them. When loading them to create an objecturl, we could load just one chunk at a time. We'll have to mess with the audio lengths because the audio element won't be able to help us as much, but hopefully it will be doable. We'll see what the Chrome engineers say here: https://bugs.chromium.org/p/chromium/issues/detail?id=967551#c25
I'm just afraid they won't be able to offer much help, but we'll see.
chmod 600 my-private-key.pem
ssh -i my-private-key.pem ubuntu@my-ip-address
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo reboot
Hopefully this will help us see what kinds of transactions are going down: https://blockchair.com/about
Write a blog post introducing the idea. If I really do need the podcast hosting companies to be on board, call them to action in the blog post. Also call podcast owners to action, asking them to get the key into their feed at whatever cost, including requesting the feature from their hosting company. Reach out to those who explicitly want reaching out to. Reach out to all of the podcast hosting companies again with the blog post and spec. Consider putting a Google form in the post to get feedback from consumers. Ask them the pertinent questions to understand if this would even be a good idea. Make the results public. Publish to hacker news and to Twitter and to Facebook and to some telegram groups maybe...oh yes, to hackernoon.
Big Picture Science is where I left off in my podcast app for reaching out for a combined round 1/2 validation for podcast producers
The most robust solution that I believe will work is downloading audio in chunks and storing them in IndexedDB, then using Media Source Extensions that continuously grab chunks and add or remove them from the buffer. I currently have an implementation of this working. The drawback is that MSE is not supported on iOS Safari...I believe it will be supported on iPadOS 13. But, there are still some drawbacks. For example, mp4 files that are not already setup to be playable in chunks will not play in chunks with MSE. So, we need a way to convert all files to a common format. It would be nice to do this on the client device. I've been experimenting with ways of doing this. MediaRecorder is not supported on iOS Safari...hopefully it will be. OfflineAudioContext seems perfect because you can render a source as quickly as possible into an AudioBuffer...but it does not support audio elements as sources. The reason I want an audio element as a source is because it takes care of partial content perfectly. If we could just get the audio out of the audio element somehow, that seems ideal. It is already doing the hard work of CORS and chunking the audio. But, the OfflineAudioContext does not support this. So, this path seems relatively promising, but the APIs are not supported across all platforms (mostly iOS Safari), so it's not ideal currently. Maybe in 6-12 months.
If I can get some podcast creators onboard. Perhaps create the form and ask the podcast creators to share it with their audience. Actually, after writing the blog post, call the podcast producers to action to share it with their audience
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.