pull/731/head v1.6.4
Li ZongYing 2 years ago
parent 0ebc166acc
commit 00e6c8d66e
  1. 4
      .github/ISSUE_TEMPLATE/bug.yml
  2. 2
      .github/ISSUE_TEMPLATE/fr.yml
  3. 12
      README.md
  4. 4
      app/src/main/AndroidManifest.xml
  5. 3
      app/src/main/java/com/lizongying/mytv/BootReceiver.kt
  6. 5
      app/src/main/java/com/lizongying/mytv/CardAdapter.kt
  7. 4
      app/src/main/java/com/lizongying/mytv/InfoFragment.kt
  8. 39
      app/src/main/java/com/lizongying/mytv/InitializerProvider.kt
  9. 55
      app/src/main/java/com/lizongying/mytv/MainActivity.kt
  10. 11
      app/src/main/java/com/lizongying/mytv/MainFragment.kt
  11. 48
      app/src/main/java/com/lizongying/mytv/Request.kt
  12. 48
      app/src/main/java/com/lizongying/mytv/SP.kt
  13. 6
      app/src/main/java/com/lizongying/mytv/SettingFragment.kt
  14. 202
      app/src/main/java/com/lizongying/mytv/TVList.kt
  15. 9
      app/src/main/java/com/lizongying/mytv/api/ApiClient.kt
  16. 10
      app/src/main/java/com/lizongying/mytv/api/FAuth.kt
  17. 13
      app/src/main/java/com/lizongying/mytv/api/FAuthService.kt
  18. 19
      app/src/main/java/com/lizongying/mytv/api/YSP.kt
  19. BIN
      app/src/main/res/drawable/cetv1.png
  20. 124
      app/src/main/res/raw/channels.json
  21. BIN
      screenshots/img_1.png
  22. BIN
      screenshots/img_2.png
  23. BIN
      screenshots/img_3.png

@ -19,8 +19,8 @@ body:
label: my-ty 版本
description: 请选择正在使用的版本
options:
- 最新稳定
- 最新 CI
- 通用
- 专用
validations:
required: true
- type: textarea

@ -11,7 +11,7 @@ body:
options:
- label: 之前没有人提交过类似或相同的功能请求。
required: true
- label: 这个建议不会背离 LibChecker 的初衷。
- label: 这个建议不会背离 my-tv 的初衷。
required: true
- type: textarea
id: propose

@ -14,11 +14,21 @@
## 更新日志
### v1.6.4(通用)
* 增加CETV1
* 增加凤凰卫视
* 默认关闭开机启动
### v1.6.2(通用)
* 修复按键无效的问题
* 新的频道列表样式
### v1.6.1(安卓5及以上专用)
* 增加凤凰卫视
### v1.6.0(通用)
* 通用(春晚緊急修復)
@ -195,7 +205,7 @@ adb install my-tv.apk
## TODO
* 音量不同
* 大湾区卫视、广东4k超高清、广东珠江
* 大湾区卫视、广东4k超高清、广东珠江、三沙卫视
* CETV教育频道
* CHC高清三个电影频道
* 地方频道

@ -38,5 +38,9 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<provider
android:name=".InitializerProvider"
android:authorities="${applicationId}.InitializerProvider"
android:exported="false"/>
</application>
</manifest>

@ -7,8 +7,7 @@ import android.content.Intent
class BootReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val sp = context.getSharedPreferences("MainActivity", Context.MODE_PRIVATE)
if (sp.getBoolean(MainActivity.BOOT_STARTUP, true)) {
if (SP.bootStartup) {
context.startActivity(
Intent(context, MainActivity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

@ -109,6 +109,11 @@ class CardAdapter(
.centerInside()
.into(cardView.mainImageView)
"CETV1" -> Glide.with(viewHolder.view.context)
.load(R.drawable.cetv1)
.centerInside()
.into(cardView.mainImageView)
else -> Glide.with(viewHolder.view.context)
.load(tvViewModel.logo.value)
.centerInside()

@ -47,6 +47,10 @@ class InfoFragment : Fragment() {
.load(R.drawable.bingtuan)
.into(binding.infoLogo)
"CETV1" -> Glide.with(this)
.load(R.drawable.cetv1)
.into(binding.infoLogo)
else -> Glide.with(this)
.load(tvViewModel.logo.value)
.into(binding.infoLogo)

@ -0,0 +1,39 @@
package com.lizongying.mytv
import android.content.ContentProvider
import android.content.ContentValues
import android.net.Uri
internal class InitializerProvider : ContentProvider() {
// Happens before Application#onCreate.It's fine to init something here
override fun onCreate(): Boolean {
SP.init(context!!)
return true
}
override fun query(
uri: Uri,
projection: Array<out String>?,
selection: String?,
selectionArgs: Array<out String>?,
sortOrder: String?,
) = unsupported()
override fun getType(uri: Uri) = unsupported()
override fun insert(uri: Uri, values: ContentValues?) = unsupported()
override fun delete(uri: Uri, selection: String?, selectionArgs: Array<out String>?) =
unsupported()
override fun update(
uri: Uri,
values: ContentValues?,
selection: String?,
selectionArgs: Array<out String>?,
) = unsupported()
private fun unsupported(errorMessage: String? = null): Nothing =
throw UnsupportedOperationException(errorMessage)
}

@ -1,7 +1,5 @@
package com.lizongying.mytv
import android.content.Context
import android.content.SharedPreferences
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.content.pm.Signature
@ -44,11 +42,6 @@ class MainActivity : FragmentActivity() {
private val delayHideMain: Long = 5000
private val delayHideSetting: Long = 10000
lateinit var sharedPref: SharedPreferences
private var channelReversal = false
private var channelNum = true
private var bootStartup = false
init {
lifecycleScope.launch(Dispatchers.IO) {
val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() }
@ -78,12 +71,6 @@ class MainActivity : FragmentActivity() {
.commit()
}
gestureDetector = GestureDetector(this, GestureListener())
sharedPref = getPreferences(Context.MODE_PRIVATE)
channelReversal = sharedPref.getBoolean(CHANNEL_REVERSAL, channelReversal)
channelNum = sharedPref.getBoolean(CHANNEL_NUM, channelNum)
bootStartup = sharedPref.getBoolean(BOOT_STARTUP, bootStartup)
val packageInfo = getPackageInfo()
val versionName = packageInfo.versionName
val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
@ -91,13 +78,12 @@ class MainActivity : FragmentActivity() {
} else {
packageInfo.versionCode.toLong()
}
settingFragment =
SettingFragment(versionName, versionCode, channelReversal, channelNum, bootStartup)
settingFragment = SettingFragment(versionName, versionCode, SP.channelReversal, SP.channelNum, SP.bootStartup)
}
fun showInfoFragment(tvViewModel: TVViewModel) {
infoFragment.show(tvViewModel)
if (channelNum) {
if (SP.channelNum) {
channelFragment.show(tvViewModel)
}
}
@ -111,7 +97,7 @@ class MainActivity : FragmentActivity() {
return
}
if (channelNum) {
if (SP.channelNum) {
channelFragment.show(channel)
}
}
@ -239,30 +225,6 @@ class MainActivity : FragmentActivity() {
}
}
fun saveChannelReversal(channelReversal: Boolean) {
with(sharedPref.edit()) {
putBoolean(CHANNEL_REVERSAL, channelReversal)
apply()
}
this.channelReversal = channelReversal
}
fun saveChannelNum(channelNum: Boolean) {
with(sharedPref.edit()) {
putBoolean(CHANNEL_NUM, channelNum)
apply()
}
this.channelNum = channelNum
}
fun saveBootStartup(bootStartup: Boolean) {
with(sharedPref.edit()) {
putBoolean(BOOT_STARTUP, bootStartup)
apply()
}
this.bootStartup = bootStartup
}
private fun showSetting() {
if (!mainFragment.isHidden) {
return
@ -286,7 +248,7 @@ class MainActivity : FragmentActivity() {
private fun channelUp() {
if (mainFragment.isHidden) {
if (channelReversal) {
if (SP.channelReversal) {
next()
return
}
@ -303,7 +265,7 @@ class MainActivity : FragmentActivity() {
private fun channelDown() {
if (mainFragment.isHidden) {
if (channelReversal) {
if (SP.channelReversal) {
prev()
return
}
@ -557,10 +519,7 @@ class MainActivity : FragmentActivity() {
handler.removeCallbacks(hideMain)
}
companion object {
private const val TAG = "MainActivity"
private const val CHANNEL_REVERSAL = "channel_reversal"
private const val CHANNEL_NUM = "channel_num"
const val BOOT_STARTUP = "boot_startup"
private companion object {
const val TAG = "MainActivity"
}
}

@ -1,6 +1,5 @@
package com.lizongying.mytv
import android.content.SharedPreferences
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@ -37,8 +36,6 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
var tvListViewModel = TVListViewModel()
private lateinit var sharedPref: SharedPreferences
private var lastVideoUrl = ""
private val handler = Handler(Looper.getMainLooper())
@ -56,9 +53,8 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
super.onActivityCreated(savedInstanceState)
activity?.let { request.initYSP(it) }
sharedPref = (activity as? MainActivity)?.sharedPref!!
itemPosition = sharedPref.getInt(POSITION, 0)
itemPosition = SP.itemPosition
view?.post {
val content = binding.content
@ -343,10 +339,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
override fun onStop() {
Log.i(TAG, "onStop")
super.onStop()
with(sharedPref.edit()) {
putInt(POSITION, itemPosition)
apply()
}
SP.itemPosition = itemPosition
Log.i(TAG, "$POSITION $itemPosition saved")
}

@ -9,6 +9,8 @@ import com.lizongying.mytv.Utils.getDateFormat
import com.lizongying.mytv.api.ApiClient
import com.lizongying.mytv.api.Auth
import com.lizongying.mytv.api.AuthRequest
import com.lizongying.mytv.api.FAuth
import com.lizongying.mytv.api.FAuthService
import com.lizongying.mytv.api.Info
import com.lizongying.mytv.api.LiveInfo
import com.lizongying.mytv.api.LiveInfoRequest
@ -33,6 +35,7 @@ class Request {
private var yspApiService: YSPApiService = ApiClient().yspApiService
private var yspBtraceService: YSPBtraceService = ApiClient().yspBtraceService
private var yspProtoService: YSPProtoService = ApiClient().yspProtoService
private var fAuthService: FAuthService = ApiClient().fAuthService
private var ysp: YSP? = null
private var token = ""
@ -328,7 +331,7 @@ class Request {
token = response.body()?.data?.token!!
Log.i(TAG, "info success $token")
val cookie =
"versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205; yspappid=519748109;yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
"versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205; yspappid=519748109; yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
fetchVideo(tvModel, cookie)
} else {
Log.e(TAG, "info status error")
@ -361,12 +364,53 @@ class Request {
})
} else {
val cookie =
"versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205; yspappid=519748109;yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
"versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205; yspappid=519748109; yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
fetchVideo(tvModel, cookie)
}
}
private var fAuth: Call<FAuth>? = null
fun fetchFAuth(tvModel: TVViewModel) {
call?.cancel()
callAuth?.cancel()
fAuth?.cancel()
val title = tvModel.title.value
fAuth = fAuthService.getAuth(tvModel.getTV().pid, "HD")
fAuth?.enqueue(object : Callback<FAuth> {
override fun onResponse(call: Call<FAuth>, response: Response<FAuth>) {
if (response.isSuccessful && response.body()?.data?.live_url != null) {
val url = response.body()?.data?.live_url!!
// Log.d(TAG, "$title url $url")
tvModel.addVideoUrl(url)
tvModel.allReady()
tvModel.retryTimes = 0
} else {
Log.e(TAG, "auth status error")
if (tvModel.tokenRetryTimes < tvModel.tokenRetryMaxTimes) {
tvModel.tokenRetryTimes++
fetchFAuth(tvModel)
}
}
}
override fun onFailure(call: Call<FAuth>, t: Throwable) {
Log.e(TAG, "auth request error $t")
if (tvModel.tokenRetryTimes < tvModel.tokenRetryMaxTimes) {
tvModel.tokenRetryTimes++
fetchFAuth(tvModel)
}
}
})
}
fun fetchData(tvModel: TVViewModel) {
if (tvModel.getTV().channel == "港澳台") {
fetchFAuth(tvModel)
return
}
if (tvModel.getTV().needToken) {
if (needAuth) {
fetchAuth(tvModel)

@ -0,0 +1,48 @@
package com.lizongying.mytv
import android.content.Context
import android.content.SharedPreferences
object SP {
// Name of the sp file TODO Should use a meaningful name and do migrations
private const val SP_FILE_NAME = "MainActivity"
// If Change channel with up and down in reversed order or not
private const val KEY_CHANNEL_REVERSAL = "channel_reversal"
// If use channel num to select channel or not
private const val KEY_CHANNEL_NUM = "channel_num"
// If start app on device boot or not
private const val KEY_BOOT_STARTUP = "boot_startup"
// Position in list of the selected channel item
private const val KEY_POSITION = "position"
// guid
private const val KEY_GUID = "guid"
private lateinit var sp: SharedPreferences
/**
* The method must be invoked as early as possible(At least before using the keys)
*/
fun init(context: Context) {
sp = context.getSharedPreferences(SP_FILE_NAME, Context.MODE_PRIVATE)
}
var channelReversal: Boolean
get() = sp.getBoolean(KEY_CHANNEL_REVERSAL, false)
set(value) = sp.edit().putBoolean(KEY_CHANNEL_REVERSAL, value).apply()
var channelNum: Boolean
get() = sp.getBoolean(KEY_CHANNEL_NUM, true)
set(value) = sp.edit().putBoolean(KEY_CHANNEL_NUM, value).apply()
var bootStartup: Boolean
get() = sp.getBoolean(KEY_BOOT_STARTUP, false)
set(value) = sp.edit().putBoolean(KEY_BOOT_STARTUP, value).apply()
var itemPosition: Int
get() = sp.getInt(KEY_POSITION, 0)
set(value) = sp.edit().putInt(KEY_POSITION, value).apply()
var guid: String
get() = sp.getString(KEY_GUID, "") ?: ""
set(value) = sp.edit().putString(KEY_GUID, value).apply()
}

@ -39,21 +39,21 @@ class SettingFragment(
val switchChannelReversal = _binding?.switchChannelReversal
switchChannelReversal?.isChecked = channelReversal
switchChannelReversal?.setOnCheckedChangeListener { _, isChecked ->
(activity as MainActivity).saveChannelReversal(isChecked)
SP.channelReversal = isChecked
(activity as MainActivity).settingActive()
}
val switchChannelNum = _binding?.switchChannelNum
switchChannelNum?.isChecked = channelNum
switchChannelNum?.setOnCheckedChangeListener { _, isChecked ->
(activity as MainActivity).saveChannelNum(isChecked)
SP.channelNum = isChecked
(activity as MainActivity).settingActive()
}
val switchBootStartup = _binding?.switchBootStartup
switchBootStartup?.isChecked = bootStartup
switchBootStartup?.setOnCheckedChangeListener { _, isChecked ->
(activity as MainActivity).saveBootStartup(isChecked)
SP.bootStartup = isChecked
(activity as MainActivity).settingActive()
}

@ -2,14 +2,14 @@ package com.lizongying.mytv
object TVList {
var list = mapOf(
"央视频道" to listOf(
"央视" to listOf(
TV(
0,
"CCTV1 综合",
"CCTV1",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226231/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/d57905b93540bd15f0c48230dbbbff7ee0d645ff539e38866e2d15c8b9f7dfcd.png?imageMogr2/format/webp",
"600001859",
"2022576801",
@ -23,7 +23,7 @@ object TVList {
"CCTV2",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226195/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/20115388de0207131af17eac86c33049b95d69eaff064e55653a1b941810a006.png?imageMogr2/format/webp",
"600001800",
"2022576701",
@ -37,7 +37,7 @@ object TVList {
"CCTV3",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226397/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/7b7a65c712450da3deb6ca66fbacf4f9aee00d3f20bd80eafb5ada01ec63eb3a.png?imageMogr2/format/webp",
"600001801",
"2022576501",
@ -54,7 +54,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226191/index.m3u8"
),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/f357e58fdbcc076a3d65e1f958c942b2e14f14342c60736ceed98b092d35356a.png?imageMogr2/format/webp",
"600001814",
"2022576601",
@ -68,7 +68,7 @@ object TVList {
"CCTV5",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226395/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/0a6a7138952675983a3d854df7688557b286d59aa06166edae51506f9204d655.png?imageMogr2/format/webp",
"600001818",
"2022576401",
@ -82,7 +82,7 @@ object TVList {
"CCTV6",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226393/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/741515efda91f03f455df8a7da4ee11fa9329139c276435cf0a9e2af398d5bf2.png?imageMogr2/format/webp",
"600108442",
"2013693901",
@ -96,7 +96,7 @@ object TVList {
"CCTV7",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226192/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/b29af94e295ebdf646cefb68122c429b9cd921f498ca20d2d8070252536f9ff9.png?imageMogr2/format/webp",
"600004092",
"2022576201",
@ -110,7 +110,7 @@ object TVList {
"CCTV8",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226391/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/ad51de94426a0ba039e6dd6a8534ea98ecc813a6176bde87b4f18cc34d6d7590.png?imageMogr2/format/webp",
"600001803",
"2022576101",
@ -124,7 +124,7 @@ object TVList {
"CCTV9",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226197/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/2ed1b4deeca179d5db806bb941790f82eb92a1b7299c1c38fe027f95a5caee5e.png?imageMogr2/format/webp",
"600004078",
"2022576001",
@ -138,7 +138,7 @@ object TVList {
"CCTV10",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226189/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/aa6157ec65188cd41826e5a2f088c3d6d153205f5f6428258d12c59999e221aa.png?imageMogr2/format/webp",
"600001805",
"2022573001",
@ -152,7 +152,7 @@ object TVList {
"CCTV11",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226240/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/ed12ed7c7a1034dae4350011fe039284c5d5a836506b28c9e32e3c75299625c0.png?imageMogr2/format/webp",
"600001806",
"2022575901",
@ -166,7 +166,7 @@ object TVList {
"CCTV12",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226190/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/484083cffaa40df7e659565e8cb4d1cc740158a185512114167aa21fa0c59240.png?imageMogr2/format/webp",
"600001807",
"2022575801",
@ -183,7 +183,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226233/index.m3u8"
),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/266da7b43c03e2312186b4a999e0f060e8f15b10d2cc2c9aa32171819254cf1a.png?imageMogr2/format/webp",
"600001811",
"2022575701",
@ -197,7 +197,7 @@ object TVList {
"CCTV14",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226193/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/af6b603896938dc346fbb16abfc63c12cba54b0ec9d18770a15d347d115f12d5.png?imageMogr2/format/webp",
"600001809",
"2022575601",
@ -211,7 +211,7 @@ object TVList {
"CCTV15",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/2ceee92188ef684efe0d8b90839c4f3ad450d179dc64d59beff417059453af47.png?imageMogr2/format/webp",
"600001815",
"2022575501",
@ -228,7 +228,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226921/index.m3u8"
),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/53793fa7bacd3a93ff6dc5d2758418985e1f952a316c335d663b572d8bdcd74d.png?imageMogr2/format/webp",
"600098637",
"2022575401",
@ -242,7 +242,7 @@ object TVList {
"CCTV17",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226198/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/ddef563072f8bad2bea5b9e52674cb7b4ed50efb20c26e61994dfbdf05c1e3c0.png?imageMogr2/format/webp",
"600001810",
"2022575301",
@ -256,7 +256,7 @@ object TVList {
"CCTV5+",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226221/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/649ad76a90bfef55b05db9fe52e006487280f619089099d5dc971e387fc6eff0.png?imageMogr2/format/webp",
"600001817",
"2022576301",
@ -270,7 +270,7 @@ object TVList {
"CCTV4K",
listOf(),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/3e9d06fd7244d950df5838750f1c6ac3456e172b51caca2c16d2282125b111e8.png?imageMogr2/format/webp",
"600002264",
"2022575201",
@ -284,7 +284,7 @@ object TVList {
"CCTV8K",
listOf(),
0,
"央视频道",
"央视",
"",
"600156816",
"2020603421",
@ -298,7 +298,7 @@ object TVList {
"CCTV风云剧场频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226950/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/4d549e53e6d0f632d5a633d1945280797b153e588f919221a07faa869812cc89.png?imageMogr2/format/webp",
"600099658",
"2012513603",
@ -312,7 +312,7 @@ object TVList {
"CCTV第一剧场频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226959/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/a556bd7d93ce65e18f243a8892b5604f4faa994a4897315914216a710a706208.png?imageMogr2/format/webp",
"600099655",
"2012514403",
@ -326,7 +326,7 @@ object TVList {
"CCTV怀旧剧场频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226972/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/5661bd04fecdb6e899f801147a22ab5d3a475bf2b62e30aec2c0023190ebc9b1.png?imageMogr2/format/webp",
"600099620",
"2012511203",
@ -340,7 +340,7 @@ object TVList {
"CCTV世界地理频道",
listOf(),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/bb3c6c9e145d698137f5bb64a582021a01b51344b929003630eb769ea65832a9.png?imageMogr2/format/webp",
"600099637",
"2012513303",
@ -354,7 +354,7 @@ object TVList {
"CCTV风云音乐频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226953/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/bbf1d024c5228b8dd128b0e3cb1717d173fab4ee84c3a4c8a57b1a215362ca3b.png?imageMogr2/format/webp",
"600099660",
"2012514103",
@ -368,7 +368,7 @@ object TVList {
"CCTV兵器科技频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226975/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/4c6b6a6d3839889f34d33db3c2f80233b26b74d3489b393487635f8704e70796.png?imageMogr2/format/webp",
"600099649",
"2012513403",
@ -382,7 +382,7 @@ object TVList {
"CCTV风云足球频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226984/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/cd1e2bb52b06a991de168733e5ff0f1d85adc8042d40c8f393f723543e5dd08a.png?imageMogr2/format/webp",
"600099636",
"2012514203",
@ -396,7 +396,7 @@ object TVList {
"CCTV高尔夫·网球频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226978/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/cdd1b31ede7a5ad049ed53d9a072422f829e72dd062ed2c19e077fdd01699071.png?imageMogr2/format/webp",
"600099659",
"2012512503",
@ -410,7 +410,7 @@ object TVList {
"CCTV女性时尚频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226969/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/fa28955ce8b2539d728bf4c6a13a46ff57ad76eae46627f7bcfb1ed8a613d3fc.png?imageMogr2/format/webp",
"600099650",
"2012513903",
@ -424,7 +424,7 @@ object TVList {
"CCTV央视文化精品频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226981/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/14ac5ce40482cacd3d4b37435222bfe86af2b452a2f04ecbfc1d13d76edd7c57.png?imageMogr2/format/webp",
"600099653",
"2012513803",
@ -438,7 +438,7 @@ object TVList {
"CCTV央视台球频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226956/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/10e14a92478011aa6c3c8562e62127f3b1908e29fcd78e4b2b24b9e6d3ec2fbc.png?imageMogr2/format/webp",
"600099652",
"2012513703",
@ -452,7 +452,7 @@ object TVList {
"CCTV电视指南频道",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226987/index.m3u8"),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/244d72c0eb1615ed7d51c2f5db5a67f306aa3f58c05bc2d34de3aa7e956dc8c9.png?imageMogr2/format/webp",
"600099656",
"2012514003",
@ -466,7 +466,7 @@ object TVList {
"CCTV卫生健康频道",
listOf(),
0,
"央视频道",
"央视",
"https://resources.yangshipin.cn/assets/oms/image/202306/54a6863656fdfd8f803be193ddf22441c5000a108833889816fd2d8911715ce8.png?imageMogr2/format/webp",
"600099651",
"2012513503",
@ -475,14 +475,14 @@ object TVList {
mustToken = true
),
),
"地方频道" to listOf(
"地方" to listOf(
TV(
33,
"东方卫视",
"东方卫视",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226217/index.m3u8"),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/9bd372ca292a82ce3aa08772b07efc4af1f85c21d1f268ea33440c49e9a0a488.png?imageMogr2/format/webp",
"600002483",
"2000292403",
@ -499,7 +499,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226211/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/4120e89d3079d08aa17d382f69a2308ec70839b278367763c34a34666c75cb88.png?imageMogr2/format/webp",
"600002475",
"2000296203",
@ -516,7 +516,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226194/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/7a6be5a2bb1dc53a945c016ff1f525dc4a84c51db371c15c89aa55404b0ba784.png?imageMogr2/format/webp",
"600002508",
"2000294503",
@ -533,7 +533,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226201/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/ac4ed6058a87c101ae7147ebc38905d0cae047fb73fd277ee5049b84f52bda36.png?imageMogr2/format/webp",
"600002505",
"2000281303",
@ -550,7 +550,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226200/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/380ad685c0c1d5b2c902246b8d2df6d3f9b45e2837abcfe493075bbded597a31.png?imageMogr2/format/webp",
"600002521",
"2000295603",
@ -567,7 +567,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225764/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/3c760d0d00463855890e8a1864ea4a6b6dd66b90c29b4ac714a4b17c16519871.png?imageMogr2/format/webp",
"600002503",
"2000294103",
@ -581,7 +581,7 @@ object TVList {
"山东卫视",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226209/index.m3u8"),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/22d403f07a7cf5410b3ad3ddb65a11aa229a32475fac213f5344c9f0ec330ca1.png?imageMogr2/format/webp",
"600002513",
"2000294803",
@ -595,7 +595,7 @@ object TVList {
"广东卫视",
listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226216/index.m3u8"),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/28886880a4dc0f06fb7e0a528a1def0591d61a65870e29176ede0cc92033bbfd.png?imageMogr2/format/webp",
"600002485",
"2000292703",
@ -612,7 +612,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225770/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/54b7e97cb816bb223fe05f3fc44da2c7820eb66e8550c19d23100f2c414ecc38.png?imageMogr2/format/webp",
"600002509",
"2000294203",
@ -629,7 +629,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226202/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/657651f411de2673d1770d9a78b44c1265704f7468cc41d4be7f51d630768494.png?imageMogr2/format/webp",
"600002531",
"2000297803",
@ -646,7 +646,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225767/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/74925962148a6d31c85808b6cd4e444c2a54bab393d2c5fc85e960b50e22fa86.png?imageMogr2/format/webp",
"600002525",
"2000296103",
@ -663,7 +663,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225750/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/d545becdc81c60197b08c7f47380705e4665ed3fe55efc8b855e486f6e655378.png?imageMogr2/format/webp",
"600002493",
"2000293403",
@ -680,7 +680,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225793/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/4eb45f4781d33d872af027dc01c941559aab55667dd99cc5c22bef7037807b13.png?imageMogr2/format/webp",
"600002490",
"2000293303",
@ -697,7 +697,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226222/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/f4f23633c578beea49a3841d88d3490100f029ee349059fa532869db889872c5.png?imageMogr2/format/webp",
"600002309",
"2000272103",
@ -714,7 +714,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226215/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/d8273ae9be698ce2db21f5b886ecac95a73429593f93713c60ed8c12c38bf0d3.png?imageMogr2/format/webp",
"600002498",
"2000293903",
@ -731,7 +731,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226199/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/a66c836bd98ba3e41a2e9a570d4b9c50dedc6839e9de333e2e78212ad505f37e.png?imageMogr2/format/webp",
"600002520",
"2000295503",
@ -748,7 +748,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226203/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/f35fa04b51b1ee4984b03578b65403570868ebca03c6c01e11b097f999a58d9b.png?imageMogr2/format/webp",
"600002532",
"2000298003",
@ -765,7 +765,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226205/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/d59fec04c902e3581c617136d02d4b9b8c4cbe64272781ddd3525e80c823edb7.png?imageMogr2/format/webp",
"600002481",
"2000292203",
@ -782,7 +782,7 @@ object TVList {
"http://39.134.24.166/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225768/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/3276a414ae0eaa0f116f2045cd913367967d0c7c1e978e8621ac3879436c6ed7.png?imageMogr2/format/webp",
"600002516",
"2000295003",
@ -799,7 +799,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225766/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/3208fe6564a293c21b711333fb3edb05bb5b406cff840573c9a8d839680a1579.png?imageMogr2/format/webp",
"600002484",
"2000292503",
@ -816,7 +816,7 @@ object TVList {
"http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225769/index.m3u8"
),
0,
"地方频道",
"地方",
"https://resources.yangshipin.cn/assets/oms/image/202306/6e060391fde0469801fc3d84dbf204b4f8d650d251f17d7595a6964c0bb99e81.png?imageMogr2/format/webp",
"600002506",
"2000291503",
@ -830,7 +830,7 @@ object TVList {
"天津卫视",
listOf(),
0,
"地方频道",
"地方",
"",
"600152137",
"2019927003",
@ -844,7 +844,7 @@ object TVList {
"新疆卫视",
listOf(),
0,
"地方频道",
"地方",
"",
"600152138",
"2019927403",
@ -858,7 +858,7 @@ object TVList {
"兵团卫视",
listOf(),
0,
"地方频道",
"地方",
"",
"600170344",
"2022606701",
@ -866,15 +866,73 @@ object TVList {
true,
mustToken = false
),
),
"国际频道" to listOf(
TV(
57,
"CETV1",
"CETV1",
listOf(),
0,
"地方",
"",
"600171827",
"2022823801",
"",
true,
mustToken = false
),
),
"港澳台" to listOf(
TV(
58,
"凤凰卫视资讯台",
"",
listOf(),
0,
"港澳台",
"http://c1.fengshows-cdn.com/a/2021_22/79dcc3a9da358a3.png",
"7c96b084-60e1-40a9-89c5-682b994fb680",
"",
"",
false,
mustToken = false
),
TV(
59,
"凤凰卫视中文台",
"",
listOf(),
0,
"港澳台",
"http://c1.fengshows-cdn.com/a/2021_22/ede3d9e09be28e5.png",
"f7f48462-9b13-485b-8101-7b54716411ec",
"",
"",
false,
mustToken = false
),
TV(
60,
"凤凰卫视香港台",
"",
listOf(),
0,
"港澳台",
"http://c1.fengshows-cdn.com/a/2021_23/325d941090bee17.png",
"15e02d92-1698-416c-af2f-3e9a872b4d78",
"",
"",
false,
mustToken = false
),
),
"国际" to listOf(
TV(
61,
"CGTN",
"CGTN",
listOf("http://live.cgtn.com/1000/prog_index.m3u8"),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202306/a72dff758ca1c17cd0ecc8cedc11b893d208f409d5e6302faa0e9d298848abc3.png?imageMogr2/format/webp",
"600014550",
"2022575001",
@ -883,12 +941,12 @@ object TVList {
mustToken = false
),
TV(
58,
62,
"CGTN 法语频道",
"CGTN法语频道",
listOf("https://livefr.cgtn.com/1000f/prog_index.m3u8"),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202306/a8d0046a47433d952bf6ed17062deb8bd2184ba9aec0f7781df6bf9487a3ffcf.png?imageMogr2/format/webp",
"600084704",
"2022574901",
@ -897,12 +955,12 @@ object TVList {
mustToken = false
),
TV(
59,
63,
"CGTN 俄语频道",
"CGTN俄语频道",
listOf("http://liveru.cgtn.com/1000r/prog_index.m3u8"),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202306/bf0a820893cbaf20dd0333e27042e1ef9c8806e5b602b6a8c95af399db0bc77a.png?imageMogr2/format/webp",
"600084758",
"2022574801",
@ -911,12 +969,12 @@ object TVList {
mustToken = false
),
TV(
60,
64,
"CGTN 阿拉伯语频道",
"CGTN阿拉伯语频道",
listOf("http://livear.cgtn.com/1000a/prog_index.m3u8"),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202306/2e44e2aa3e7a1cedf07fd0ae59fe69e86a60a2632660a006e3e9e7397b2d107e.png?imageMogr2/format/webp",
"600084782",
"2022574601",
@ -925,7 +983,7 @@ object TVList {
mustToken = false
),
TV(
61,
65,
"CGTN 西班牙语频道",
"CGTN西班牙语频道",
listOf(
@ -933,7 +991,7 @@ object TVList {
"http://livees.cgtn.com/1000e/prog_index.m3u8"
),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202309/7c337e3dbe64402ec7e4678a619a4a6d95144e42f35161181ff78e143b7cf67a.png?imageMogr2/format/webp",
"600084744",
"2022571701",
@ -942,12 +1000,12 @@ object TVList {
mustToken = false
),
TV(
62,
66,
"CGTN 纪录频道",
"CGTN外语纪录频道",
listOf("https://livedoc.cgtn.com/500d/prog_index.m3u8"),
0,
"国际频道",
"国际",
"https://resources.yangshipin.cn/assets/oms/image/202309/74d3ac436a7e374879578de1d87a941fbf566d39d5632b027c5097891ed32bd5.png?imageMogr2/format/webp",
"600084781",
"2022574701",

@ -16,6 +16,7 @@ class ApiClient {
private val devUrl = "http://10.0.2.2:8081/"
private val protoUrl = "https://capi.yangshipin.cn/"
private val traceUrl = "https://btrace.yangshipin.cn/"
private val fUrl = "https://m.fengshows.com/"
private var okHttpClient = getUnsafeOkHttpClient()
@ -59,6 +60,14 @@ class ApiClient {
.build().create(YSPBtraceService::class.java)
}
val fAuthService: FAuthService by lazy {
Retrofit.Builder()
.baseUrl(fUrl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build().create(FAuthService::class.java)
}
private fun getUnsafeOkHttpClient(): OkHttpClient {
try {
val trustAllCerts: Array<TrustManager> = arrayOf(

@ -0,0 +1,10 @@
package com.lizongying.mytv.api
data class FAuth(
val data: Data,
) {
data class Data(
val live_url: String,
)
}

@ -0,0 +1,13 @@
package com.lizongying.mytv.api
import retrofit2.Call
import retrofit2.http.GET
import retrofit2.http.Query
interface FAuthService {
@GET("api/v3/hub/live/auth-url")
fun getAuth(
@Query("live_id") live_id: String = "",
@Query("live_qa") live_qa: String = "",
): Call<FAuth>
}

@ -1,9 +1,9 @@
package com.lizongying.mytv.api
import android.content.Context
import android.content.SharedPreferences
import com.lizongying.mytv.Encryptor
import com.lizongying.mytv.MainActivity
import com.lizongying.mytv.SP
import com.lizongying.mytv.Utils.getDateTimestamp
import com.lizongying.mytv.models.TVViewModel
import kotlin.math.floor
@ -54,14 +54,11 @@ class YSP(var context: Context) {
var token = ""
private var encryptor: Encryptor? = null
private lateinit var sharedPref: SharedPreferences
init {
if (context is MainActivity) {
encryptor = Encryptor()
encryptor!!.init(context)
sharedPref = (context as MainActivity).sharedPref
}
guid = getGuid()
@ -110,23 +107,17 @@ class YSP(var context: Context) {
}
fun getGuid(): String {
var guid = sharedPref.getString("guid", "")
if (guid == null || guid.length < 18) {
var guid = SP.guid
if (guid.length < 18) {
guid = generateGuid()
with(sharedPref.edit()) {
putString("guid", guid)
apply()
}
SP.guid = guid
}
return guid
}
private fun newGuid(): String {
guid = generateGuid()
with(sharedPref.edit()) {
putString("guid", guid)
apply()
}
SP.guid = guid
return guid
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -2,7 +2,7 @@
{
"id": 0,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/d57905b93540bd15f0c48230dbbbff7ee0d645ff539e38866e2d15c8b9f7dfcd.png?imageMogr2/format/webp",
"pid": "600001859",
"sid": "2000210103",
@ -17,7 +17,7 @@
{
"id": 1,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/20115388de0207131af17eac86c33049b95d69eaff064e55653a1b941810a006.png?imageMogr2/format/webp",
"pid": "600001800",
"sid": "2000203603",
@ -32,7 +32,7 @@
{
"id": 2,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/7b7a65c712450da3deb6ca66fbacf4f9aee00d3f20bd80eafb5ada01ec63eb3a.png?imageMogr2/format/webp",
"pid": "600001801",
"sid": "2000203803",
@ -47,7 +47,7 @@
{
"id": 3,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/f357e58fdbcc076a3d65e1f958c942b2e14f14342c60736ceed98b092d35356a.png?imageMogr2/format/webp",
"pid": "600001814",
"sid": "2000204803",
@ -63,7 +63,7 @@
{
"id": 4,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/0a6a7138952675983a3d854df7688557b286d59aa06166edae51506f9204d655.png?imageMogr2/format/webp",
"pid": "600001818",
"sid": "2000205103",
@ -78,7 +78,7 @@
{
"id": 5,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/741515efda91f03f455df8a7da4ee11fa9329139c276435cf0a9e2af398d5bf2.png?imageMogr2/format/webp",
"pid": "600001802",
"sid": "2013693901",
@ -93,7 +93,7 @@
{
"id": 6,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/b29af94e295ebdf646cefb68122c429b9cd921f498ca20d2d8070252536f9ff9.png?imageMogr2/format/webp",
"pid": "600004092",
"sid": "2000510003",
@ -108,7 +108,7 @@
{
"id": 7,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/ad51de94426a0ba039e6dd6a8534ea98ecc813a6176bde87b4f18cc34d6d7590.png?imageMogr2/format/webp",
"pid": "600001803",
"sid": "2000203903",
@ -123,7 +123,7 @@
{
"id": 8,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/2ed1b4deeca179d5db806bb941790f82eb92a1b7299c1c38fe027f95a5caee5e.png?imageMogr2/format/webp",
"pid": "600004078",
"sid": "2000499403",
@ -138,7 +138,7 @@
{
"id": 9,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/aa6157ec65188cd41826e5a2f088c3d6d153205f5f6428258d12c59999e221aa.png?imageMogr2/format/webp",
"pid": "600001805",
"sid": "2000203503",
@ -153,7 +153,7 @@
{
"id": 10,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/ed12ed7c7a1034dae4350011fe039284c5d5a836506b28c9e32e3c75299625c0.png?imageMogr2/format/webp",
"pid": "600001806",
"sid": "2000204103",
@ -168,7 +168,7 @@
{
"id": 11,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/484083cffaa40df7e659565e8cb4d1cc740158a185512114167aa21fa0c59240.png?imageMogr2/format/webp",
"pid": "600001807",
"sid": "2000202603",
@ -183,7 +183,7 @@
{
"id": 12,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/266da7b43c03e2312186b4a999e0f060e8f15b10d2cc2c9aa32171819254cf1a.png?imageMogr2/format/webp",
"pid": "600001811",
"sid": "2000204603",
@ -199,7 +199,7 @@
{
"id": 13,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/af6b603896938dc346fbb16abfc63c12cba54b0ec9d18770a15d347d115f12d5.png?imageMogr2/format/webp",
"pid": "600001809",
"sid": "2000204403",
@ -214,7 +214,7 @@
{
"id": 14,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/2ceee92188ef684efe0d8b90839c4f3ad450d179dc64d59beff417059453af47.png?imageMogr2/format/webp",
"pid": "600001815",
"sid": "2000205003",
@ -229,7 +229,7 @@
{
"id": 15,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/53793fa7bacd3a93ff6dc5d2758418985e1f952a316c335d663b572d8bdcd74d.png?imageMogr2/format/webp",
"pid": "600098637",
"sid": "2012375003",
@ -245,7 +245,7 @@
{
"id": 16,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/ddef563072f8bad2bea5b9e52674cb7b4ed50efb20c26e61994dfbdf05c1e3c0.png?imageMogr2/format/webp",
"pid": "600001810",
"sid": "2000204203",
@ -260,7 +260,7 @@
{
"id": 17,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/649ad76a90bfef55b05db9fe52e006487280f619089099d5dc971e387fc6eff0.png?imageMogr2/format/webp",
"pid": "600001817",
"sid": "2000204503",
@ -275,7 +275,7 @@
{
"id": 18,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/3e9d06fd7244d950df5838750f1c6ac3456e172b51caca2c16d2282125b111e8.png?imageMogr2/format/webp",
"pid": "600002264",
"sid": "2000266303",
@ -290,7 +290,7 @@
{
"id": 19,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "",
"pid": "600156816",
"sid": "2020603421",
@ -305,7 +305,7 @@
{
"id": 20,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/4d549e53e6d0f632d5a633d1945280797b153e588f919221a07faa869812cc89.png?imageMogr2/format/webp",
"pid": "600099658",
"sid": "2012513603",
@ -320,7 +320,7 @@
{
"id": 21,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/a556bd7d93ce65e18f243a8892b5604f4faa994a4897315914216a710a706208.png?imageMogr2/format/webp",
"pid": "600099655",
"sid": "2012514403",
@ -335,7 +335,7 @@
{
"id": 22,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/5661bd04fecdb6e899f801147a22ab5d3a475bf2b62e30aec2c0023190ebc9b1.png?imageMogr2/format/webp",
"pid": "600099620",
"sid": "2012511203",
@ -350,7 +350,7 @@
{
"id": 23,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/bb3c6c9e145d698137f5bb64a582021a01b51344b929003630eb769ea65832a9.png?imageMogr2/format/webp",
"pid": "600099637",
"sid": "2012513303",
@ -365,7 +365,7 @@
{
"id": 24,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/bbf1d024c5228b8dd128b0e3cb1717d173fab4ee84c3a4c8a57b1a215362ca3b.png?imageMogr2/format/webp",
"pid": "600099660",
"sid": "2012514103",
@ -380,7 +380,7 @@
{
"id": 25,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/4c6b6a6d3839889f34d33db3c2f80233b26b74d3489b393487635f8704e70796.png?imageMogr2/format/webp",
"pid": "600099649",
"sid": "2012513403",
@ -395,7 +395,7 @@
{
"id": 26,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/cd1e2bb52b06a991de168733e5ff0f1d85adc8042d40c8f393f723543e5dd08a.png?imageMogr2/format/webp",
"pid": "600099636",
"sid": "2012514203",
@ -410,7 +410,7 @@
{
"id": 27,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/cdd1b31ede7a5ad049ed53d9a072422f829e72dd062ed2c19e077fdd01699071.png?imageMogr2/format/webp",
"pid": "600099659",
"sid": "2012512503",
@ -425,7 +425,7 @@
{
"id": 28,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/fa28955ce8b2539d728bf4c6a13a46ff57ad76eae46627f7bcfb1ed8a613d3fc.png?imageMogr2/format/webp",
"pid": "600099650",
"sid": "2012513903",
@ -440,7 +440,7 @@
{
"id": 29,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/14ac5ce40482cacd3d4b37435222bfe86af2b452a2f04ecbfc1d13d76edd7c57.png?imageMogr2/format/webp",
"pid": "600099653",
"sid": "2012513803",
@ -455,7 +455,7 @@
{
"id": 30,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/10e14a92478011aa6c3c8562e62127f3b1908e29fcd78e4b2b24b9e6d3ec2fbc.png?imageMogr2/format/webp",
"pid": "600099652",
"sid": "2012513703",
@ -470,7 +470,7 @@
{
"id": 31,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/244d72c0eb1615ed7d51c2f5db5a67f306aa3f58c05bc2d34de3aa7e956dc8c9.png?imageMogr2/format/webp",
"pid": "600099656",
"sid": "2012514003",
@ -485,7 +485,7 @@
{
"id": 32,
"videoIndex": 0,
"channel": "央视频道",
"channel": "央视",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/54a6863656fdfd8f803be193ddf22441c5000a108833889816fd2d8911715ce8.png?imageMogr2/format/webp",
"pid": "600099651",
"sid": "2012513503",
@ -500,7 +500,7 @@
{
"id": 33,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/9bd372ca292a82ce3aa08772b07efc4af1f85c21d1f268ea33440c49e9a0a488.png?imageMogr2/format/webp",
"pid": "600002483",
"sid": "2000292403",
@ -515,7 +515,7 @@
{
"id": 34,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/4120e89d3079d08aa17d382f69a2308ec70839b278367763c34a34666c75cb88.png?imageMogr2/format/webp",
"pid": "600002475",
"sid": "2000296203",
@ -531,7 +531,7 @@
{
"id": 35,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/7a6be5a2bb1dc53a945c016ff1f525dc4a84c51db371c15c89aa55404b0ba784.png?imageMogr2/format/webp",
"pid": "600002508",
"sid": "2000294503",
@ -547,7 +547,7 @@
{
"id": 36,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/ac4ed6058a87c101ae7147ebc38905d0cae047fb73fd277ee5049b84f52bda36.png?imageMogr2/format/webp",
"pid": "600002505",
"sid": "2000281303",
@ -563,7 +563,7 @@
{
"id": 37,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/380ad685c0c1d5b2c902246b8d2df6d3f9b45e2837abcfe493075bbded597a31.png?imageMogr2/format/webp",
"pid": "600002521",
"sid": "2000295603",
@ -579,7 +579,7 @@
{
"id": 38,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/3c760d0d00463855890e8a1864ea4a6b6dd66b90c29b4ac714a4b17c16519871.png?imageMogr2/format/webp",
"pid": "600002503",
"sid": "2000294103",
@ -595,7 +595,7 @@
{
"id": 39,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/22d403f07a7cf5410b3ad3ddb65a11aa229a32475fac213f5344c9f0ec330ca1.png?imageMogr2/format/webp",
"pid": "600002513",
"sid": "2000294803",
@ -610,7 +610,7 @@
{
"id": 40,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/28886880a4dc0f06fb7e0a528a1def0591d61a65870e29176ede0cc92033bbfd.png?imageMogr2/format/webp",
"pid": "600002485",
"sid": "2000292703",
@ -625,7 +625,7 @@
{
"id": 41,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/54b7e97cb816bb223fe05f3fc44da2c7820eb66e8550c19d23100f2c414ecc38.png?imageMogr2/format/webp",
"pid": "600002509",
"sid": "2000294203",
@ -641,7 +641,7 @@
{
"id": 42,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/657651f411de2673d1770d9a78b44c1265704f7468cc41d4be7f51d630768494.png?imageMogr2/format/webp",
"pid": "600002531",
"sid": "2000297803",
@ -657,7 +657,7 @@
{
"id": 43,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/74925962148a6d31c85808b6cd4e444c2a54bab393d2c5fc85e960b50e22fa86.png?imageMogr2/format/webp",
"pid": "600002525",
"sid": "2000296103",
@ -673,7 +673,7 @@
{
"id": 44,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/d545becdc81c60197b08c7f47380705e4665ed3fe55efc8b855e486f6e655378.png?imageMogr2/format/webp",
"pid": "600002493",
"sid": "2000293403",
@ -689,7 +689,7 @@
{
"id": 45,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/4eb45f4781d33d872af027dc01c941559aab55667dd99cc5c22bef7037807b13.png?imageMogr2/format/webp",
"pid": "600002490",
"sid": "2000293303",
@ -705,7 +705,7 @@
{
"id": 46,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/f4f23633c578beea49a3841d88d3490100f029ee349059fa532869db889872c5.png?imageMogr2/format/webp",
"pid": "600002309",
"sid": "2000272103",
@ -721,7 +721,7 @@
{
"id": 47,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/d8273ae9be698ce2db21f5b886ecac95a73429593f93713c60ed8c12c38bf0d3.png?imageMogr2/format/webp",
"pid": "600002498",
"sid": "2000293903",
@ -737,7 +737,7 @@
{
"id": 48,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/a66c836bd98ba3e41a2e9a570d4b9c50dedc6839e9de333e2e78212ad505f37e.png?imageMogr2/format/webp",
"pid": "600002520",
"sid": "2000295503",
@ -753,7 +753,7 @@
{
"id": 49,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/f35fa04b51b1ee4984b03578b65403570868ebca03c6c01e11b097f999a58d9b.png?imageMogr2/format/webp",
"pid": "600002532",
"sid": "2000298003",
@ -769,7 +769,7 @@
{
"id": 50,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/d59fec04c902e3581c617136d02d4b9b8c4cbe64272781ddd3525e80c823edb7.png?imageMogr2/format/webp",
"pid": "600002481",
"sid": "2000292203",
@ -785,7 +785,7 @@
{
"id": 51,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/3276a414ae0eaa0f116f2045cd913367967d0c7c1e978e8621ac3879436c6ed7.png?imageMogr2/format/webp",
"pid": "600002516",
"sid": "2000295003",
@ -801,7 +801,7 @@
{
"id": 52,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/3208fe6564a293c21b711333fb3edb05bb5b406cff840573c9a8d839680a1579.png?imageMogr2/format/webp",
"pid": "600002484",
"sid": "2000292503",
@ -817,7 +817,7 @@
{
"id": 53,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/6e060391fde0469801fc3d84dbf204b4f8d650d251f17d7595a6964c0bb99e81.png?imageMogr2/format/webp",
"pid": "600002506",
"sid": "2000291503",
@ -833,7 +833,7 @@
{
"id": 54,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "",
"pid": "600152137",
"sid": "2019927003",
@ -848,7 +848,7 @@
{
"id": 55,
"videoIndex": 0,
"channel": "地方频道",
"channel": "地方",
"logo": "",
"pid": "600152138",
"sid": "2019927403",
@ -863,7 +863,7 @@
{
"id": 56,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/a72dff758ca1c17cd0ecc8cedc11b893d208f409d5e6302faa0e9d298848abc3.png?imageMogr2/format/webp",
"pid": "600014550",
"sid": "2001656803",
@ -878,7 +878,7 @@
{
"id": 57,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/a8d0046a47433d952bf6ed17062deb8bd2184ba9aec0f7781df6bf9487a3ffcf.png?imageMogr2/format/webp",
"pid": "600084704",
"sid": "2010153503",
@ -893,7 +893,7 @@
{
"id": 58,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/bf0a820893cbaf20dd0333e27042e1ef9c8806e5b602b6a8c95af399db0bc77a.png?imageMogr2/format/webp",
"pid": "600084758",
"sid": "2010152603",
@ -908,7 +908,7 @@
{
"id": 59,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202306/2e44e2aa3e7a1cedf07fd0ae59fe69e86a60a2632660a006e3e9e7397b2d107e.png?imageMogr2/format/webp",
"pid": "600084782",
"sid": "2010155203",
@ -923,7 +923,7 @@
{
"id": 60,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202309/7c337e3dbe64402ec7e4678a619a4a6d95144e42f35161181ff78e143b7cf67a.png?imageMogr2/format/webp",
"pid": "600084744",
"sid": "2010152503",
@ -939,7 +939,7 @@
{
"id": 61,
"videoIndex": 0,
"channel": "国际频道",
"channel": "国际",
"logo": "https://resources.yangshipin.cn/assets/oms/image/202309/74d3ac436a7e374879578de1d87a941fbf566d39d5632b027c5097891ed32bd5.png?imageMogr2/format/webp",
"pid": "600084781",
"sid": "2010155403",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 0 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 0 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 0 B

Loading…
Cancel
Save