psykotyco / AppleTV-Channels

AppleTV App to watch tv channels made in MVP
3 stars 0 forks source link

Providing own JSON? #1

Open RefusedFlow opened 7 years ago

RefusedFlow commented 7 years ago

Hey 👋

This app looks quite promising, how difficult would it be for you to implement a way to let me provide my own json file that pulls all the necessary meta data instead of whatever's being requested from clantv.net? I've been looking for this exact project! I'm a Graphic Designer myself/w UI experience so if this is something you'd be interested in adding I wouldn't mind designing the whole app UI?

All the best 🚀

psykotyco commented 7 years ago

Hi!!!

The develop will be so easy, the only thing that is needed is to make a transformation functionality to create an object that follow the beans protocols (https://github.com/psykotyco/AppleTV-Channels/tree/master/TVChannels/TVChannels/Model/Beans) for channels and categories and that's it.

It will be awesome if you want to work with me and improve the design and anything that you want :)

RefusedFlow commented 7 years ago

I'm totally up with helping out on the UI for this app!! I spend a few hours just mocking up my first attempt of a home screen? Any feedback would be great! Some of the type sizes might need to be adjusted but here's what I have so far.

I plan on creating my own JSON API which will output the following for each cell for UK Shows

TV App UI

psykotyco commented 7 years ago

I love the design!!! If you think that we can get the info about the channels, events, etc, we can add this kind of information and show it in the dashboard.

Currently for the service that I'm using, I'm not able to retrieve this kind of information because I'm using a third party backend service, but if you want I can help you with the necessary development to introduce that new service and design.

Cheers :)

RefusedFlow commented 7 years ago

Most of the public EPG data API's here in the UK suck or either don't provide everything I would like, so i'll probably just end up scraping the meta data from an existing website, give me a few days and I should have something thrown together how's that sound?

psykotyco commented 7 years ago

Sounds great, if you want I can help you with the JSON definition. Do you want to have a seevice to provide those meta data or scrap it from a web always from the app? I'll try to ping you to have an easier communication :+1:

RefusedFlow commented 7 years ago

Apologies for the delay, after doing some research TV24 looks like the best website to scrape metadata from, it provides everything I created in the Sketch design for pretty much every UK channel plus it's source code is well structured.

How'd you want to go about scraping the meta data from that website? Within the application or externally though something like a php script?

psykotyco commented 7 years ago

Hi, that's great. Is always better to have a backend that provide the app the necessary data to represent.

Could you create that provider and I'll take care to implement design and development in the app to represent the new client provider? If you want we can have a look together about the json format to make it easy as possible

RefusedFlow commented 7 years ago

Hey! I'm done! 🎉

JSON

Everything is complete apart from the direct stream links, for the time being there's just a placeholder stream for you to work with, i'll get the correct m3u8 streams added my end when I get some time tomorrow. But all the EPG data is being fetched live from TV24 I've formatted the JSON as best as i could, anything needs changing let me know!

psykotyco commented 7 years ago

Hi!!! Awesome, this afternoon I'll check the JSON and the format and I'll start to work on it :) It seems that the link that you sent me doesn't work right now, can you have a look on that?

Incredible work. Cheers

RefusedFlow commented 7 years ago

Hey again!!

I've set the JSON to automatically update every 10 minutes, let me know if there's anything else that needs adding

🚀

psykotyco commented 7 years ago

Hi!!!

Sorry yesterday I had to work until late and I'll have a look now about the response and the format. Let me create a branch called TV24 and start working there retrieving the service :)

RefusedFlow commented 7 years ago

Not a problem at all! 👍 All I need todo now is add the correct video stream to the script instead of the placeholder video stream but that's all server side & Awesome that sounds like a great idea! 😊

psykotyco commented 7 years ago

I expect to let integrated today at least a base implementation without the design but with the functionality to retrieve the data and to be able to select a channel like in the current app. I'll ping you 👍

Good work with the backend!!!!

RefusedFlow commented 7 years ago

Dope! That sounds awesome!

Thankss, considering I'm an amateur with PHP I don't think i've done too badly haha

psykotyco commented 7 years ago

Hi, if you checkout the branch TV24_integration you can load the channels from the service that you created (again, great work). When you update the url for the streaming in the service, it will reproduce the correct channel. I did a quick integration, but I'll improve the code in the next iteration :)

RefusedFlow commented 7 years ago

Ayy nice work! Work's pretty well so far, I've updated the stream URL's for each channel on the json request, i've just got two things that i need to fix and then the output.json should be finished.

Things I need to fix

RefusedFlow commented 7 years ago

Should be able to finish the output.json this week then everything on my part should be finished? 😊

psykotyco commented 7 years ago

Hi!!! Sorry for the late reply. This week I'll be in conferences and I don't know if I'll be able to work in the project, but I'll try to add the channels data to the design. We need to speak about the refresh time to don't burn the server with requests. I think that the rest will be fine, if something happen I'll write you. Sorry for the delay and the time that it will take to complete the task, I want at the same time to refactor some code to improve it :)

RefusedFlow commented 7 years ago

Hey!

I might look into the potential of hosting on AWS pretty sure there's some free tiers available that would be more than enough for running a script like this. Running on a standard web server is just going to use all the bandwidth if this app gains some traction. Ahh no rush! I was just wondering where you went haha 👍 Refactor some of the code sounds like a good idea too!

psykotyco commented 7 years ago

Hi!

I'll start now to introduce the design, I can make the refactor after, the code is not in a bad status but it could be better, always improving :) This week will be difficult to spend a lot of time to work on the project cause of work and social event hehehe, but don't panic, I'm committed with the project and I'll work on it Cheers :)

RefusedFlow commented 7 years ago

Awesome! As long as you still want to work on the project honestly take as long as you need! Hopefully I'll get the output.json all finished and on a balanced server that won't overload under demand, I'll keep you updated.

psykotyco commented 7 years ago

Hi!!! Sorry man, can you check the JSON service? It's not working and I don't have any example to check the data.

Thanks :)

RefusedFlow commented 7 years ago

Hi, yeah I noticed the free hosting really ain't good.

I've got it hosted on my personal hosting here here far more reliable than free hosting I was using. Bandwidth won't be an issue either however the output is a .php instead of .json is that an issue?

psykotyco commented 7 years ago

Hi, I finished the design for the TV24, I did it a little bit quick because I wanted to have a first version with the design, but everything that you find like an error, just tell me and I'll adjust sizes etc...

The branch is TV24_integration_new_design.

Now, I'll start the code refactor :) Hope you like the version, after the refactor, my plan is to be able to switch between different providers with a menu, to be able to change between several providers that we can add to the app

RefusedFlow commented 7 years ago

Hi,

Really nice first revision of the design! I major issue I noticed is that images reload when scrolling down the scrolling back up, would it be possible for them to stay on screen instead of being reloaded when coming into view?

Also I'd be preferred if the channel image and meta data as a whole take advantage of the parallax effect rather than just the image for each channel.

If you're having issues sometimes of the app crashing that's because of the output.json is returning null responses when scraping tv24.co.uk, I'll try add a fallback data for whenever they return null to avoid this.

psykotyco commented 7 years ago

Hi, about the image load, I will need to add a cache system to improve that, I take note for a future improvement. Apply the parallax effect to the whole cell is not a quick thing to do, I promise that I'll improve it but now I wanted to make the refactor and to create the service provider selector to be able to change between providers.

I saw that some data from the json make the app crash, if you can send an empty string instead a null it will be fine :)

Cheers