No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
As a Consumer of livestreaming content, I want to be able to choose which channel is played.
videodac
Kotlin, Ethereum, livestreaming, hls
# Brief
This issue contains a brief for an improvement to videoDAC's Pay-to-play Livestream Consumer application template.
The improvement is to add the ability for a consumer to choose which livestream channel to watch (and pay to).
## Summary
Currently, the app is a single-channel app, allowing a Consumer to watch content from 1 hardcoded channel, and pay to 1 hardcoded address.
This brief proposes an improvement to the app, to present a Consumer with a choice of channels, allowing them to choose which channel to watch, and thus who to pay to.
## Current Behaviour
Currently, the User Experience in the Pay-to-Play Consumer Android app is as follows:
### **User** launches app
### _App_ retrieves `balance` of Wallet
```
IF (balance) (pricePerMinute) THEN payAndPlayLivestream
```
- _App_ requests livestream content from hardcoded URL
- _App_ pays native ETH + gas every 1 minute
### **User** watches livestream content
### _App_ continues to check:
```
IF (balance) (pricePerMinute + 21000 gas) THEN showManifestIndex
```
### App shows `manifestIndex` = livestream channel list
```
IF manifestIndex.length = 0 THEN showSadMessage
```

```
ELSE IF manifestIndex.length > 0 THEN showChannelList
```

### User taps a channel
### _App_ requests livestream content from URL corresponding to ETH address
### _App_ starts paying native ETH payments (+ gas) every 1 minute to the Ethereum address
### **User** watches livestream content
### _App_ continues to check:
```
IF (balance) If no ENS data has been received, or the address has no ENS name, continue to show the Ethereum address.
- For each Ethereum address in the channel list, the app should query the `livepeer` space on 3Box using for example:
```
const spaceData = await Box.getSpace('0xdac817294c0c87ca4fa1895ef4b972eade99f2fd', 'livepeer')
```
**If and when** the 3Box profile data for an address is returned, then **update the channel entry** with the 3Box image and name:

> If no 3Box profile data has been received, or the address has no 3Box profile for Livepeer, continue to show the Ethereum address, or the ENS name.
- All remote integrations should be checked in to `/integration` folder of this repo. This includes integration between the app and:
- `http` `hls` livestreaming content
- `/status` channel list
- ENS
- 3Box
- Gas Price Oracle
- All local utilities, which may be useful in other apps, should be check in to `/utils` folder. This includes:
- Generate image from Ethereum address
- Generate QR code from Ethereum address
- All static text should be configurable in the template.
2. When the user is being asked to choose from a list of channels, they can tap the screen to select the channel, without the app closing. In all other cases, tapping anywhere on the screen should close the app, stop paying, stop streaming.
- The app must work on Android 4.1.1 and above.
## Development Environment
To develop this feature entirely locally, you will need the following:
- Clone / Fork of this repository
- Android Studio
- [`simple-streaming-server`](https://github.com/videoDAC/simple-streaming-server) with 3 local test streams enabled
- Ethereum testhchain, e.g. using Ganache
- KEthereum https://github.com/komputing/KEthereum
- able to work effectively on Android 4.1.1
## Specific Deliverables
This issue will be closed, and the bounty paid out when the following are true:
- `.apk` files for debug and release, implementing the above functionality.
- Pull Request containing code changes has been submitted and accepted into this repo
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (π°), learn (π), and meet (π¬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save