|
29 | 29 | import mSearch.daten.DatenFilm; |
30 | 30 | import mSearch.tool.Log; |
31 | 31 | import mSearch.tool.MSStringBuilder; |
| 32 | +import mServer.crawler.CrawlerTool; |
32 | 33 | import mServer.crawler.FilmeSuchen; |
33 | 34 | import mServer.crawler.GetUrl; |
34 | | -import mServer.crawler.CrawlerTool; |
35 | 35 | import org.apache.commons.lang3.StringEscapeUtils; |
36 | 36 |
|
37 | 37 | public class MediathekSrf extends MediathekReader implements Runnable { |
@@ -168,6 +168,7 @@ private void addFilmsFromPage(MSStringBuilder page, String thema, String themePa |
168 | 168 | * @param theme the theme name of the film |
169 | 169 | */ |
170 | 170 | private void addFilms(String jsonMovieUrl, String themePageUrl, String theme) { |
| 171 | + final String INDEX_0 = "index_0_av.m3u8"; |
171 | 172 | final String INDEX_1 = "index_1_av.m3u8"; |
172 | 173 | final String INDEX_2 = "index_2_av.m3u8"; |
173 | 174 | final String INDEX_3 = "index_3_av.m3u8"; |
@@ -205,28 +206,38 @@ private void addFilms(String jsonMovieUrl, String themePageUrl, String theme) { |
205 | 206 | String url_small = ""; |
206 | 207 |
|
207 | 208 | String url3u8 = urlHD.endsWith("m3u8") ? urlHD : url_normal; |
208 | | - if (url3u8.endsWith("m3u8")) { |
209 | | - m3u8Page = getUrl.getUri_Utf(SENDERNAME, url3u8, m3u8Page, ""); |
210 | | - if (m3u8Page.indexOf(INDEX_5) != -1) { |
211 | | - urlHD = getUrlFromM3u8(url3u8, INDEX_5); |
212 | | - } |
213 | 209 |
|
214 | | - if (m3u8Page.indexOf(INDEX_4) != -1) { |
215 | | - url_normal = getUrlFromM3u8(url3u8, INDEX_4); |
216 | | - } else if (m3u8Page.indexOf(INDEX_3) != -1) { |
217 | | - url_normal = getUrlFromM3u8(url3u8, INDEX_3); |
218 | | - } |
219 | | - if (m3u8Page.indexOf(INDEX_2) != -1) { |
220 | | - url_small = getUrlFromM3u8(url3u8, INDEX_2); |
221 | | - } else if (m3u8Page.indexOf(INDEX_1) != -1) { |
222 | | - url_small = getUrlFromM3u8(url3u8, INDEX_1); |
| 210 | + if (url3u8.endsWith("m3u8")) { |
| 211 | + getM3u8(url3u8); |
| 212 | + if (url3u8.contains("q50,q60")) { |
| 213 | + if (m3u8Page.indexOf(INDEX_5) != -1) { |
| 214 | + urlHD = getUrlFromM3u8(url3u8, INDEX_5); |
| 215 | + } |
| 216 | + if (m3u8Page.indexOf(INDEX_4) != -1) { |
| 217 | + url_normal = getUrlFromM3u8(url3u8, INDEX_4); |
| 218 | + } else if (m3u8Page.indexOf(INDEX_3) != -1) { |
| 219 | + url_normal = getUrlFromM3u8(url3u8, INDEX_3); |
| 220 | + } |
| 221 | + if (m3u8Page.indexOf(INDEX_2) != -1) { |
| 222 | + url_small = getUrlFromM3u8(url3u8, INDEX_2); |
| 223 | + } else if (m3u8Page.indexOf(INDEX_1) != -1) { |
| 224 | + url_small = getUrlFromM3u8(url3u8, INDEX_1); |
| 225 | + } |
| 226 | + } else { |
| 227 | + if (m3u8Page.indexOf(INDEX_0) != -1) { |
| 228 | + url_normal = getUrlFromM3u8(url3u8, INDEX_0); |
| 229 | + } |
| 230 | + if (m3u8Page.indexOf(INDEX_3) != -1) { |
| 231 | + url_small = getUrlFromM3u8(url3u8, INDEX_3); |
| 232 | + } else if (m3u8Page.indexOf(INDEX_2) != -1) { |
| 233 | + url_small = getUrlFromM3u8(url3u8, INDEX_2); |
| 234 | + } |
223 | 235 | } |
224 | 236 | } |
225 | | - if (url_normal.isEmpty()) { |
226 | | - if (!url_small.isEmpty()) { |
227 | | - url_normal = url_small; |
228 | | - url_small = ""; |
229 | | - } |
| 237 | + |
| 238 | + if (url_normal.isEmpty() && !url_small.isEmpty()) { |
| 239 | + url_normal = url_small; |
| 240 | + url_small = ""; |
230 | 241 | } |
231 | 242 | // https -> http |
232 | 243 | if (url_normal.startsWith("https")) { |
@@ -260,6 +271,16 @@ private void addFilms(String jsonMovieUrl, String themePageUrl, String theme) { |
260 | 271 | } |
261 | 272 | } |
262 | 273 |
|
| 274 | + private void getM3u8(String url3u8) { |
| 275 | + m3u8Page = getUrl.getUri_Utf(SENDERNAME, url3u8, m3u8Page, ""); |
| 276 | + if (m3u8Page.length() == 0 && url3u8.startsWith("https://srfvodhd-vh.akamaihd.net")) { |
| 277 | + // tauschen https://srfvodhd-vh.akamaihd.net http://hdvodsrforigin-f.akamaihd.net |
| 278 | + // ist ein 403 |
| 279 | + url3u8 = url3u8.replaceFirst("https://srfvodhd-vh.akamaihd.net", "http://hdvodsrforigin-f.akamaihd.net"); |
| 280 | + m3u8Page = getUrl.getUri_Utf(SENDERNAME, url3u8, m3u8Page, ""); |
| 281 | + } |
| 282 | + } |
| 283 | + |
263 | 284 | private String getUrl(MSStringBuilder filmPage, String s1, String s2) { |
264 | 285 | String url = ""; |
265 | 286 | String m3u8 = ""; |
|
0 commit comments