rabilrbl / jiotv_go

Unlock the magic of JioTV across all your devices, without the need for the JioTV App. Crafted with love in Golang for a delightful blend of speed and efficiency! 🌟✨
https://jiotv_go.rabil.me/
Other
170 stars 54 forks source link

feat: Catch-up support for seeking live TV #90

Open rabilrbl opened 9 months ago

rabilrbl commented 9 months ago

Feature description

In JioTV app, we can select a particular show and start watching earlier telecasted tv shows.

Solution

Add extra params to seek live TV and modify APIs to achieve the same.

Additional context

No response

Acknowledgements

Darknight92228 commented 1 month ago

Does it support fire os?

rabilrbl commented 1 month ago

Does it support fire os?

Ask ur doubts at JioTV Go community on Telegram.

https://telegram.me/jiotv_go_chat

PlessioTihsrah commented 3 weeks ago

Sending the following form data to https://jiotvapi.media.jio.com/playback/apis/v1/geturl?langId=6 will give stream information of catchup. It needs most of the data from EPG

channel_id: channelID
stream_type: "Catchup"
begin: epg_data.startEpoch
end: epg_data.endEpoch
srno, epg_data.srno
programId, epg_data.showId
showtime: epg_data.showtime

Rest streaming can use the same logic written in https://github.com/rabilrbl/jiotv_go/blob/65effc34c068b11e7e127d3e34c0c543a5ca0607/pkg/television/television.go#L72 I don't know golang hence cannot implement this big change 😓

rabilrbl commented 3 weeks ago

@PlessioTihsrah Man this is great! Never thought about it. Will test this and implement ASAP

rabilrbl commented 3 weeks ago

@PlessioTihsrah I though this will give us whole days catchup with just a single m3u8 file. Is it possible? Otherwise I have to build new components for which I don't have time

PlessioTihsrah commented 3 weeks ago

@rabilrbl For the current m3u8 playlist, if you add some keys catchup-days, catchup, catchup-source, then IPTV player automatically sends the params for stream (tried only with tivimate for now). For example

#EXTINF:-1 tvg-id=143 tvg-name="CNBC Tv18 Prime HD" tvg-logo="http://localhost:5001/jtvimage/CNBC_Tv18_Prime_HD.png" tvg-language="English" tvg-type="Business" group-title="Business" catchup-days="1" catchup="auto" catchup-source="http://localhost:5001/catchup/143?start=${start}&end=${end}", CNBC Tv18 Prime HD

For the above EXT, tivimate sends the request as GET /catchup/143 Params:[start=1717846200&end=1717848000] If have a route for /catchup/:channel_id which does the following then catchup should be possible

It requires a considerable amount of time to implement this. Anyway will checkout more on this in the weekend if there is a better way