mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	fixed StreamSB (#105)
This commit is contained in:
		
							parent
							
								
									aab8e9ce2b
								
							
						
					
					
						commit
						9402a28041
					
				
					 3 changed files with 34 additions and 22 deletions
				
			
		|  | @ -10,6 +10,10 @@ import javax.crypto.Cipher | |||
| import javax.crypto.spec.IvParameterSpec | ||||
| import javax.crypto.spec.SecretKeySpec | ||||
| 
 | ||||
| class DatabaseGdrive : Gdriveplayer() { | ||||
|     override var mainUrl = "https://series.databasegdriveplayer.co" | ||||
| } | ||||
| 
 | ||||
| class Gdriveplayerapi: Gdriveplayer() { | ||||
|     override val mainUrl: String = "https://gdriveplayerapi.com" | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +1,16 @@ | |||
| package com.lagradost.cloudstream3.extractors | ||||
| 
 | ||||
| import com.fasterxml.jackson.annotation.JsonProperty | ||||
| import com.lagradost.cloudstream3.SubtitleFile | ||||
| import com.lagradost.cloudstream3.app | ||||
| import com.lagradost.cloudstream3.utils.AppUtils.parseJson | ||||
| import com.lagradost.cloudstream3.utils.ExtractorApi | ||||
| import com.lagradost.cloudstream3.utils.ExtractorLink | ||||
| import com.lagradost.cloudstream3.utils.M3u8Helper | ||||
| 
 | ||||
| class Streamsss : StreamSB() { | ||||
|     override var mainUrl = "https://streamsss.net" | ||||
| } | ||||
| 
 | ||||
| class Sbflix : StreamSB() { | ||||
|     override var mainUrl = "https://sbflix.xyz" | ||||
|     override var name = "Sbflix" | ||||
|  | @ -109,31 +113,33 @@ open class StreamSB : ExtractorApi() { | |||
|         @JsonProperty("status_code") val statusCode: Int, | ||||
|     ) | ||||
| 
 | ||||
|     override suspend fun getUrl(url: String, referer: String?): List<ExtractorLink>? { | ||||
|         val regexID = Regex("(embed-[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+|\\/e\\/[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+)") | ||||
|     override suspend fun getUrl( | ||||
|         url: String, | ||||
|         referer: String?, | ||||
|         subtitleCallback: (SubtitleFile) -> Unit, | ||||
|         callback: (ExtractorLink) -> Unit | ||||
|     ) { | ||||
|         val regexID = | ||||
|             Regex("(embed-[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+|/e/[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+)") | ||||
|         val id = regexID.findAll(url).map { | ||||
|             it.value.replace(Regex("(embed-|\\/e\\/)"),"") | ||||
|             it.value.replace(Regex("(embed-|/e/)"), "") | ||||
|         }.first() | ||||
|         val bytes = id.toByteArray() | ||||
|         val bytesToHex = bytesToHex(bytes) | ||||
|         val master = "$mainUrl/sources44/6d6144797752744a454267617c7c${bytesToHex.lowercase()}7c7c4e61755a56456f34385243727c7c73747265616d7362/6b4a33767968506e4e71374f7c7c343837323439333133333462353935333633373836643638376337633462333634663539343137373761333635313533333835333763376333393636363133393635366136323733343435323332376137633763373337343732363536313664373336327c7c504d754478413835306633797c7c73747265616d7362" | ||||
| //        val master = "$mainUrl/sources48/6d6144797752744a454267617c7c${bytesToHex.lowercase()}7c7c4e61755a56456f34385243727c7c73747265616d7362/6b4a33767968506e4e71374f7c7c343837323439333133333462353935333633373836643638376337633462333634663539343137373761333635313533333835333763376333393636363133393635366136323733343435323332376137633763373337343732363536313664373336327c7c504d754478413835306633797c7c73747265616d7362" | ||||
|         val master = "$mainUrl/sources48/" + bytesToHex("||$id||||streamsb".toByteArray()) + "/" | ||||
|         val headers = mapOf( | ||||
|             "watchsb" to "streamsb", | ||||
|             ) | ||||
|         val urltext = app.get(master, | ||||
|             "watchsb" to "sbstream", | ||||
|         ) | ||||
|         val mapped = app.get( | ||||
|             master.lowercase(), | ||||
|             headers = headers, | ||||
|             allowRedirects = false | ||||
|         ).text | ||||
|         val mapped = urltext.let { parseJson<Main>(it) } | ||||
|         val testurl = app.get(mapped.streamData.file, headers = headers).text | ||||
|             referer = url, | ||||
|         ).parsedSafe<Main>() | ||||
|         // val urlmain = mapped.streamData.file.substringBefore("/hls/") | ||||
|         if (urltext.contains("m3u8") && testurl.contains("EXTM3U")) | ||||
|             return M3u8Helper.generateM3u8( | ||||
|                 name, | ||||
|                 mapped.streamData.file, | ||||
|                 url, | ||||
|                 headers = headers | ||||
|             ) | ||||
|         return null | ||||
|         M3u8Helper.generateM3u8( | ||||
|             name, | ||||
|             mapped?.streamData?.file ?: return, | ||||
|             url, | ||||
|             headers = headers | ||||
|         ).forEach(callback) | ||||
|     } | ||||
| } | ||||
|  | @ -237,6 +237,7 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf( | |||
|     Sbthe(), | ||||
|     Vidgomunime(), | ||||
|     Sbflix(), | ||||
|     Streamsss(), | ||||
| 
 | ||||
|     Fastream(), | ||||
| 
 | ||||
|  | @ -333,6 +334,7 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf( | |||
|     Gdriveplayerus(), | ||||
|     Gdriveplayerco(), | ||||
|     Gdriveplayer(), | ||||
|     DatabaseGdrive(), | ||||
| 
 | ||||
|     YoutubeExtractor(), | ||||
|     YoutubeShortLinkExtractor(), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue