├── .github
├── ISSUE_TEMPLATE
│ ├── application-bug.yml
│ ├── feature-request.yml
│ └── provider-bug.yml
├── downloads.jpg
├── home.jpg
├── player.jpg
├── results.jpg
├── search.jpg
├── site-list.py
└── workflows
│ ├── prerelease.yml
│ ├── pull_request.yml
│ └── site_list.yml
├── .gitignore
├── .idea
├── .name
├── compiler.xml
├── discord.xml
├── gradle.xml
├── jarRepositories.xml
└── vcs.xml
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── lagradost
│ │ └── cloudstream3
│ │ └── ExampleInstrumentedTest.kt
│ ├── debug
│ ├── ic_launcher-playstore.png
│ └── res
│ │ ├── drawable-anydpi-v24
│ │ └── ic_stat_name.xml
│ │ ├── drawable-hdpi
│ │ └── ic_stat_name.png
│ │ ├── drawable-mdpi
│ │ └── ic_stat_name.png
│ │ ├── drawable-v24
│ │ ├── ic_banner_background.xml
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable-xhdpi
│ │ └── ic_stat_name.png
│ │ ├── drawable-xxhdpi
│ │ └── ic_stat_name.png
│ │ ├── drawable
│ │ └── ic_banner_foreground.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_banner.xml
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── ic_launcher_background.xml
│ │ └── strings.xml
│ ├── main
│ ├── AndroidManifest.xml
│ ├── ic_launcher-playstore.png
│ ├── java
│ │ └── com
│ │ │ └── lagradost
│ │ │ └── cloudstream3
│ │ │ ├── AcraApplication.kt
│ │ │ ├── CommonActivity.kt
│ │ │ ├── DownloaderTestImpl.kt
│ │ │ ├── MainAPI.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── ParCollections.kt
│ │ │ ├── animeproviders
│ │ │ ├── AllAnimeProvider.kt
│ │ │ ├── AniPlayProvider.kt
│ │ │ ├── AniflixProvider.kt
│ │ │ ├── AnimeFlickProvider.kt
│ │ │ ├── AnimeIndoProvider.kt
│ │ │ ├── AnimePaheProvider.kt
│ │ │ ├── AnimeSailProvider.kt
│ │ │ ├── AnimeSaturnProvider.kt
│ │ │ ├── AnimeWorldProvider.kt
│ │ │ ├── AnimefenixProvider.kt
│ │ │ ├── AnimeflvIOProvider.kt
│ │ │ ├── AnimeflvProvider.kt
│ │ │ ├── AnimekisaProvider.kt
│ │ │ ├── DubbedAnimeProvider.kt
│ │ │ ├── GogoanimeProvider.kt
│ │ │ ├── GomunimeProvider.kt
│ │ │ ├── JKAnimeProvider.kt
│ │ │ ├── KawaiifuProvider.kt
│ │ │ ├── KimCartoonProvider.kt
│ │ │ ├── KuramanimeProvider.kt
│ │ │ ├── KuronimeProvider.kt
│ │ │ ├── MonoschinosProvider.kt
│ │ │ ├── MundoDonghuaProvider.kt
│ │ │ ├── NeonimeProvider.kt
│ │ │ ├── NineAnimeProvider.kt
│ │ │ ├── NontonAnimeIDProvider.kt
│ │ │ ├── OploverzProvider.kt
│ │ │ ├── OtakudesuProvider.kt
│ │ │ ├── TenshiProvider.kt
│ │ │ ├── TocanimeProvider.kt
│ │ │ ├── WatchCartoonOnlineProvider.kt
│ │ │ ├── WcoProvider.kt
│ │ │ ├── WcofunProvider.kt
│ │ │ └── ZoroProvider.kt
│ │ │ ├── extractors
│ │ │ ├── Acefile.kt
│ │ │ ├── AsianLoad.kt
│ │ │ ├── Blogger.kt
│ │ │ ├── BullStream.kt
│ │ │ ├── DoodExtractor.kt
│ │ │ ├── Evolaod.kt
│ │ │ ├── Filesim.kt
│ │ │ ├── GMPlayer.kt
│ │ │ ├── GenericM3U8.kt
│ │ │ ├── GuardareStream.kt
│ │ │ ├── Hxfile.kt
│ │ │ ├── JWPlayer.kt
│ │ │ ├── Jawcloud.kt
│ │ │ ├── Linkbox.kt
│ │ │ ├── M3u8Manifest.kt
│ │ │ ├── Maxstream.kt
│ │ │ ├── Mcloud.kt
│ │ │ ├── MixDrop.kt
│ │ │ ├── Mp4Upload.kt
│ │ │ ├── MultiQuality.kt
│ │ │ ├── OkRuExtractor.kt
│ │ │ ├── Pelisplus.kt
│ │ │ ├── PlayerVoxzer.kt
│ │ │ ├── SBPlay.kt
│ │ │ ├── Solidfiles.kt
│ │ │ ├── SpeedoStream.kt
│ │ │ ├── StreamSB.kt
│ │ │ ├── StreamTape.kt
│ │ │ ├── Streamhub.kt
│ │ │ ├── Streamlare.kt
│ │ │ ├── Supervideo.kt
│ │ │ ├── Tantifilm.kt
│ │ │ ├── Tomatomatela.kt
│ │ │ ├── UpstreamExtractor.kt
│ │ │ ├── Uqload.kt
│ │ │ ├── Userload.kt
│ │ │ ├── VidSrcExtractor.kt
│ │ │ ├── VideoVard.kt
│ │ │ ├── Vidstream.kt
│ │ │ ├── VoeExtractor.kt
│ │ │ ├── WatchSB.kt
│ │ │ ├── WcoStream.kt
│ │ │ ├── XStreamCdn.kt
│ │ │ ├── YourUpload.kt
│ │ │ ├── YoutubeExtractor.kt
│ │ │ ├── Zplayer.kt
│ │ │ └── helper
│ │ │ │ ├── AsianEmbedHelper.kt
│ │ │ │ ├── VstreamhubHelper.kt
│ │ │ │ └── WcoHelper.kt
│ │ │ ├── liveproviders
│ │ │ └── EjaTv.kt
│ │ │ ├── metaproviders
│ │ │ ├── AnilistRedirector.kt
│ │ │ ├── CrossTmdbProvider.kt
│ │ │ ├── MultiAnimeProvider.kt
│ │ │ └── TmdbProvider.kt
│ │ │ ├── movieproviders
│ │ │ ├── AkwamProvider.kt
│ │ │ ├── AllMoviesForYouProvider.kt
│ │ │ ├── AltadefinizioneProvider.kt
│ │ │ ├── AsiaFlixProvider.kt
│ │ │ ├── AsianLoadProvider.kt
│ │ │ ├── BflixProvider.kt
│ │ │ ├── CimaNowProvider.kt
│ │ │ ├── CineblogProvider.kt
│ │ │ ├── CinecalidadProvider.kt
│ │ │ ├── CuevanaProvider.kt
│ │ │ ├── DopeboxProvider.kt
│ │ │ ├── DoramasYTProvider.kt
│ │ │ ├── DramaSeeProvider.kt
│ │ │ ├── DramaidProvider.kt
│ │ │ ├── DubokuProvider.kt
│ │ │ ├── EgyBestProvider.kt
│ │ │ ├── ElifilmsProvider.kt
│ │ │ ├── EntrepeliculasyseriesProvider.kt
│ │ │ ├── EstrenosDoramasProvider.kt
│ │ │ ├── FaselHDProvider.kt
│ │ │ ├── FilmanProvider.kt
│ │ │ ├── FilmpertuttiProvider.kt
│ │ │ ├── FmoviesToProvider.kt
│ │ │ ├── FrenchStreamProvider.kt
│ │ │ ├── HDMProvider.kt
│ │ │ ├── HDMovie5.kt
│ │ │ ├── HDTodayProvider.kt
│ │ │ ├── HDrezkaProvider.kt
│ │ │ ├── IHaveNoTvProvider.kt
│ │ │ ├── IdlixProvider.kt
│ │ │ ├── IlGenioDelloStreamingProvider.kt
│ │ │ ├── KdramaHoodProvider.kt
│ │ │ ├── KisskhProvider.kt
│ │ │ ├── LayarKacaProvider.kt
│ │ │ ├── MeloMovieProvider.kt
│ │ │ ├── MultiplexProvider.kt
│ │ │ ├── MyCimaProvider.kt
│ │ │ ├── NginxProvider.kt
│ │ │ ├── OlgplyProvider.kt
│ │ │ ├── OpenVidsProvider.kt
│ │ │ ├── PeliSmartProvider.kt
│ │ │ ├── PelisflixProvider.kt
│ │ │ ├── PelisplusHDProvider.kt
│ │ │ ├── PelisplusProvider.kt
│ │ │ ├── PelisplusProviderTemplate.kt
│ │ │ ├── PhimmoichillProvider.kt
│ │ │ ├── PinoyHDXyzProvider.kt
│ │ │ ├── PinoyMoviePediaProvider.kt
│ │ │ ├── PinoyMoviesEsProvider.kt
│ │ │ ├── RebahinProvider.kt
│ │ │ ├── SeriesflixProvider.kt
│ │ │ ├── SflixProProvider.kt
│ │ │ ├── SflixProvider.kt
│ │ │ ├── SoaptwoDayProvider.kt
│ │ │ ├── SolarmovieProvider.kt
│ │ │ ├── StreamingcommunityProvider.kt
│ │ │ ├── TantiFilmProvider.kt
│ │ │ ├── TheFlixToProvider.kt
│ │ │ ├── TrailersTwoProvider.kt
│ │ │ ├── TwoEmbedProvider.kt
│ │ │ ├── UakinoProvider.kt
│ │ │ ├── VMoveeProvider.kt
│ │ │ ├── VfFilmProvider.kt
│ │ │ ├── VfSerieProvider.kt
│ │ │ ├── VidEmbedProvider.kt
│ │ │ ├── VidSrcProvider.kt
│ │ │ ├── VidstreamProviderTemplate.kt
│ │ │ ├── WatchAsianProvider.kt
│ │ │ ├── XcineProvider.kt
│ │ │ └── YomoviesProvider.kt
│ │ │ ├── mvvm
│ │ │ └── ArchComponentExt.kt
│ │ │ ├── network
│ │ │ ├── DdosGuardKiller.kt
│ │ │ ├── DohProviders.kt
│ │ │ ├── RequestsHelper.kt
│ │ │ └── WebViewResolver.kt
│ │ │ ├── receivers
│ │ │ └── VideoDownloadRestartReceiver.kt
│ │ │ ├── services
│ │ │ └── VideoDownloadService.kt
│ │ │ ├── subtitles
│ │ │ ├── AbstractSubProvider.kt
│ │ │ └── AbstractSubtitleEntities.kt
│ │ │ ├── syncproviders
│ │ │ ├── AccountManager.kt
│ │ │ ├── AuthAPI.kt
│ │ │ ├── InAppAuthAPI.kt
│ │ │ ├── OAuth2API.kt
│ │ │ ├── SyncAPI.kt
│ │ │ ├── SyncRepo.kt
│ │ │ └── providers
│ │ │ │ ├── AniListApi.kt
│ │ │ │ ├── DropboxApi.kt
│ │ │ │ ├── IndexSubtitleApi.kt
│ │ │ │ ├── KitsuApi.kt
│ │ │ │ ├── MALApi.kt
│ │ │ │ ├── NginxApi.kt
│ │ │ │ └── OpenSubtitlesApi.kt
│ │ │ ├── torrentproviders
│ │ │ └── NyaaProvider.kt
│ │ │ ├── ui
│ │ │ ├── APIRepository.kt
│ │ │ ├── AutofitRecyclerView.kt
│ │ │ ├── ControllerActivity.kt
│ │ │ ├── MiniControllerFragment.kt
│ │ │ ├── WatchType.kt
│ │ │ ├── download
│ │ │ │ ├── DownloadButtonSetup.kt
│ │ │ │ ├── DownloadButtonViewHolder.kt
│ │ │ │ ├── DownloadChildAdapter.kt
│ │ │ │ ├── DownloadChildFragment.kt
│ │ │ │ ├── DownloadFragment.kt
│ │ │ │ ├── DownloadHeaderAdapter.kt
│ │ │ │ ├── DownloadViewModel.kt
│ │ │ │ └── EasyDownloadButton.kt
│ │ │ ├── home
│ │ │ │ ├── HomeChildItemAdapter.kt
│ │ │ │ ├── HomeFragment.kt
│ │ │ │ ├── HomeParentItemAdapter.kt
│ │ │ │ └── HomeViewModel.kt
│ │ │ ├── player
│ │ │ │ ├── AbstractPlayerFragment.kt
│ │ │ │ ├── CS3IPlayer.kt
│ │ │ │ ├── CustomSubtitleDecoderFactory.kt
│ │ │ │ ├── CustomTextRenderer.kt
│ │ │ │ ├── DownloadFileGenerator.kt
│ │ │ │ ├── DownloadedPlayerActivity.kt
│ │ │ │ ├── FullScreenPlayer.kt
│ │ │ │ ├── GeneratorPlayer.kt
│ │ │ │ ├── IGenerator.kt
│ │ │ │ ├── IPlayer.kt
│ │ │ │ ├── LinkGenerator.kt
│ │ │ │ ├── NonFinalTextRenderer.kt
│ │ │ │ ├── PlayerEpisodeAdapter.kt
│ │ │ │ ├── PlayerGeneratorViewModel.kt
│ │ │ │ ├── PlayerPipHelper.kt
│ │ │ │ ├── PlayerSubtitleHelper.kt
│ │ │ │ ├── RepoLinkGenerator.kt
│ │ │ │ └── SSLTrustManager.kt
│ │ │ ├── quicksearch
│ │ │ │ └── QuickSearchFragment.kt
│ │ │ ├── result
│ │ │ │ ├── ActorAdaptor.kt
│ │ │ │ ├── EpisodeAdapter.kt
│ │ │ │ ├── ImageAdapter.kt
│ │ │ │ ├── ResultFragment.kt
│ │ │ │ ├── ResultTrailerPlayer.kt
│ │ │ │ ├── ResultViewModel.kt
│ │ │ │ └── SyncViewModel.kt
│ │ │ ├── search
│ │ │ │ ├── SearchAdaptor.kt
│ │ │ │ ├── SearchFragment.kt
│ │ │ │ ├── SearchHelper.kt
│ │ │ │ ├── SearchHistoryAdaptor.kt
│ │ │ │ ├── SearchResultBuilder.kt
│ │ │ │ ├── SearchViewModel.kt
│ │ │ │ └── SyncSearchViewModel.kt
│ │ │ ├── settings
│ │ │ │ ├── AccountAdapter.kt
│ │ │ │ ├── SettingsAccount.kt
│ │ │ │ ├── SettingsFragment.kt
│ │ │ │ ├── SettingsGeneral.kt
│ │ │ │ ├── SettingsLang.kt
│ │ │ │ ├── SettingsPlayer.kt
│ │ │ │ ├── SettingsUI.kt
│ │ │ │ └── SettingsUpdates.kt
│ │ │ ├── setup
│ │ │ │ ├── SetupFragmentLanguage.kt
│ │ │ │ ├── SetupFragmentLayout.kt
│ │ │ │ ├── SetupFragmentMedia.kt
│ │ │ │ └── SetupFragmentProviderLanguage.kt
│ │ │ └── subtitles
│ │ │ │ ├── ChromecastSubtitlesFragment.kt
│ │ │ │ └── SubtitlesFragment.kt
│ │ │ ├── utils
│ │ │ ├── AppUtils.kt
│ │ │ ├── BackupUtils.kt
│ │ │ ├── CastHelper.kt
│ │ │ ├── CastOptionsProvider.kt
│ │ │ ├── Coroutines.kt
│ │ │ ├── DataStore.kt
│ │ │ ├── DataStoreHelper.kt
│ │ │ ├── DownloadFileWorkManager.kt
│ │ │ ├── Event.kt
│ │ │ ├── ExtensionManager.kt
│ │ │ ├── ExtractorApi.kt
│ │ │ ├── FillerEpisodeCheck.kt
│ │ │ ├── GlideApp.kt
│ │ │ ├── IDisposable.kt
│ │ │ ├── IOnBackPressed.kt
│ │ │ ├── InAppUpdater.kt
│ │ │ ├── JsUnpacker.kt
│ │ │ ├── M3u8Helper.kt
│ │ │ ├── SingleSelectionHelper.kt
│ │ │ ├── SubtitleHelper.kt
│ │ │ ├── SyncUtil.kt
│ │ │ ├── UIHelper.kt
│ │ │ ├── UnshortenUrl.kt
│ │ │ ├── Vector2.kt
│ │ │ ├── VideoDownloadHelper.kt
│ │ │ └── VideoDownloadManager.kt
│ │ │ └── widget
│ │ │ ├── CenterZoomLayoutManager.kt
│ │ │ └── FlowLayout.kt
│ └── res
│ │ ├── anim
│ │ ├── .idea
│ │ │ ├── .gitignore
│ │ │ ├── misc.xml
│ │ │ ├── modules.xml
│ │ │ └── vcs.xml
│ │ ├── enter_anim.xml
│ │ ├── exit_anim.xml
│ │ ├── go_left.xml
│ │ ├── go_right.xml
│ │ ├── nav_enter_anim.xml
│ │ ├── nav_exit_anim.xml
│ │ ├── nav_pop_enter.xml
│ │ ├── nav_pop_exit.xml
│ │ ├── pop_enter.xml
│ │ ├── pop_exit.xml
│ │ ├── rotate_left.xml
│ │ └── rotate_right.xml
│ │ ├── color
│ │ ├── check_selection_color.xml
│ │ ├── item_select_color.xml
│ │ ├── player_button_tv.xml
│ │ ├── player_on_button_tv.xml
│ │ ├── tag_stroke_color.xml
│ │ ├── text_selection_color.xml
│ │ ├── toggle_button.xml
│ │ ├── toggle_button_outline.xml
│ │ ├── toggle_button_text.xml
│ │ └── toggle_selector.xml
│ │ ├── drawable-v24
│ │ ├── ic_banner_background.xml
│ │ ├── ic_banner_foreground.xml
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── .idea
│ │ │ ├── misc.xml
│ │ │ ├── modules.xml
│ │ │ └── vcs.xml
│ │ ├── background_shadow.xml
│ │ ├── baseline_description_24.xml
│ │ ├── baseline_fullscreen_24.xml
│ │ ├── baseline_fullscreen_exit_24.xml
│ │ ├── baseline_grid_view_24.xml
│ │ ├── baseline_list_alt_24.xml
│ │ ├── baseline_remove_24.xml
│ │ ├── baseline_restore_page_24.xml
│ │ ├── baseline_save_as_24.xml
│ │ ├── baseline_sync_24.xml
│ │ ├── baseline_theaters_24.xml
│ │ ├── benene.xml
│ │ ├── circle_shape.xml
│ │ ├── circular_progress_bar.xml
│ │ ├── circular_progress_bar_filled.xml
│ │ ├── cloud_2.xml
│ │ ├── cloud_2_gradient.xml
│ │ ├── cloud_2_gradient_beta.xml
│ │ ├── cloud_2_gradient_beta_old.xml
│ │ ├── cloud_2_gradient_debug.xml
│ │ ├── custom_rating_bar.xml
│ │ ├── default_cover.xml
│ │ ├── dialog__window_background.xml
│ │ ├── dub_bg_color.xml
│ │ ├── example_poster.jpg
│ │ ├── go_back_30.xml
│ │ ├── go_forward_30.xml
│ │ ├── ic_anilist_icon.xml
│ │ ├── ic_banner_foreground.xml
│ │ ├── ic_baseline_add_24.xml
│ │ ├── ic_baseline_arrow_back_24.xml
│ │ ├── ic_baseline_arrow_back_ios_24.xml
│ │ ├── ic_baseline_arrow_forward_24.xml
│ │ ├── ic_baseline_aspect_ratio_24.xml
│ │ ├── ic_baseline_autorenew_24.xml
│ │ ├── ic_baseline_bookmark_24.xml
│ │ ├── ic_baseline_bookmark_border_24.xml
│ │ ├── ic_baseline_brightness_1_24.xml
│ │ ├── ic_baseline_brightness_2_24.xml
│ │ ├── ic_baseline_brightness_3_24.xml
│ │ ├── ic_baseline_brightness_4_24.xml
│ │ ├── ic_baseline_brightness_5_24.xml
│ │ ├── ic_baseline_brightness_6_24.xml
│ │ ├── ic_baseline_brightness_7_24.xml
│ │ ├── ic_baseline_bug_report_24.xml
│ │ ├── ic_baseline_check_24.xml
│ │ ├── ic_baseline_check_24_listview.xml
│ │ ├── ic_baseline_clear_24.xml
│ │ ├── ic_baseline_close_24.xml
│ │ ├── ic_baseline_color_lens_24.xml
│ │ ├── ic_baseline_construction_24.xml
│ │ ├── ic_baseline_delete_outline_24.xml
│ │ ├── ic_baseline_developer_mode_24.xml
│ │ ├── ic_baseline_discord_24.xml
│ │ ├── ic_baseline_dns_24.xml
│ │ ├── ic_baseline_fast_forward_24.xml
│ │ ├── ic_baseline_favorite_24.xml
│ │ ├── ic_baseline_favorite_border_24.xml
│ │ ├── ic_baseline_filter_list_24.xml
│ │ ├── ic_baseline_hd_24.xml
│ │ ├── ic_baseline_hearing_24.xml
│ │ ├── ic_baseline_keyboard_arrow_down_24.xml
│ │ ├── ic_baseline_keyboard_arrow_left_24.xml
│ │ ├── ic_baseline_keyboard_arrow_right_24.xml
│ │ ├── ic_baseline_language_24.xml
│ │ ├── ic_baseline_more_vert_24.xml
│ │ ├── ic_baseline_notifications_active_24.xml
│ │ ├── ic_baseline_ondemand_video_24.xml
│ │ ├── ic_baseline_pause_24.xml
│ │ ├── ic_baseline_picture_in_picture_alt_24.xml
│ │ ├── ic_baseline_play_arrow_24.xml
│ │ ├── ic_baseline_playlist_play_24.xml
│ │ ├── ic_baseline_public_24.xml
│ │ ├── ic_baseline_remove_red_eye_24.xml
│ │ ├── ic_baseline_skip_next_24.xml
│ │ ├── ic_baseline_speed_24.xml
│ │ ├── ic_baseline_star_24.xml
│ │ ├── ic_baseline_star_border_24.xml
│ │ ├── ic_baseline_storage_24.xml
│ │ ├── ic_baseline_subtitles_24.xml
│ │ ├── ic_baseline_system_update_24.xml
│ │ ├── ic_baseline_text_format_24.xml
│ │ ├── ic_baseline_touch_app_24.xml
│ │ ├── ic_baseline_tune_24.xml
│ │ ├── ic_baseline_tv_24.xml
│ │ ├── ic_baseline_visibility_off_24.xml
│ │ ├── ic_baseline_volume_down_24.xml
│ │ ├── ic_baseline_volume_mute_24.xml
│ │ ├── ic_baseline_volume_up_24.xml
│ │ ├── ic_baseline_warning_24.xml
│ │ ├── ic_cloudstream_monochrome.xml
│ │ ├── ic_cloudstreamlogotv.xml
│ │ ├── ic_cloudstreamlogotv_2.xml
│ │ ├── ic_cloudstreamlogotv_pre.xml
│ │ ├── ic_cloudstreamlogotv_pre_2.xml
│ │ ├── ic_dashboard_black_24dp.xml
│ │ ├── ic_github_logo.xml
│ │ ├── ic_home_black_24dp.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_launcher_foreground.xml
│ │ ├── ic_notifications_black_24dp.xml
│ │ ├── ic_outline_home_24.xml
│ │ ├── ic_outline_info_24.xml
│ │ ├── ic_outline_remove_red_eye_24.xml
│ │ ├── ic_outline_settings_24.xml
│ │ ├── ic_outline_share_24.xml
│ │ ├── ic_outline_subtitles_24.xml
│ │ ├── ic_outline_voice_over_off_24.xml
│ │ ├── kitsu_icon.xml
│ │ ├── mal_logo.xml
│ │ ├── material_outline_background.xml
│ │ ├── monke_benene.xml
│ │ ├── monke_burrito.xml
│ │ ├── monke_coco.xml
│ │ ├── monke_cookie.xml
│ │ ├── monke_drink.xml
│ │ ├── monke_flusdered.xml
│ │ ├── monke_funny.xml
│ │ ├── monke_like.xml
│ │ ├── monke_party.xml
│ │ ├── monke_sob.xml
│ │ ├── netflix_download.xml
│ │ ├── netflix_pause.xml
│ │ ├── netflix_play.xml
│ │ ├── netflix_skip_back.xml
│ │ ├── netflix_skip_forward.xml
│ │ ├── nginx.xml
│ │ ├── nginx_question.xml
│ │ ├── open_subtitles_icon.xml
│ │ ├── outline.xml
│ │ ├── outline_card.xml
│ │ ├── outline_drawable.xml
│ │ ├── pause_to_play.xml
│ │ ├── play_button.xml
│ │ ├── play_to_pause.xml
│ │ ├── player_button_tv.xml
│ │ ├── player_gradient_tv.xml
│ │ ├── progress_drawable_vertical.xml
│ │ ├── question_mark_24.xml
│ │ ├── quick_novel_icon.xml
│ │ ├── rating_empty.xml
│ │ ├── rating_fill.xml
│ │ ├── rddone.xml
│ │ ├── rderror.xml
│ │ ├── rdload.xml
│ │ ├── rdpause.xml
│ │ ├── rounded_dialog.xml
│ │ ├── rounded_progress.xml
│ │ ├── search_background.xml
│ │ ├── search_icon.xml
│ │ ├── solid_primary.xml
│ │ ├── splash_background.xml
│ │ ├── sub_bg_color.xml
│ │ ├── subtitles_background_gradient.xml
│ │ ├── subtitles_preview_background.jpg
│ │ ├── sun_1.xml
│ │ ├── sun_2.xml
│ │ ├── sun_3.xml
│ │ ├── sun_4.xml
│ │ ├── sun_5.xml
│ │ ├── sun_6.xml
│ │ ├── sun_7.xml
│ │ ├── tab_selector.xml
│ │ ├── title_shadow.xml
│ │ ├── type_bg_color.xml
│ │ ├── video_bottom_button.xml
│ │ ├── video_locked.xml
│ │ ├── video_pause.xml
│ │ ├── video_play.xml
│ │ ├── video_tap_button.xml
│ │ ├── video_tap_button_always_white.xml
│ │ ├── video_tap_button_skip.xml
│ │ └── video_unlocked.xml
│ │ ├── font
│ │ ├── comic_sans.ttf
│ │ ├── consola.ttf
│ │ ├── futura.ttf
│ │ ├── google_sans.xml
│ │ ├── gotham.ttf
│ │ ├── lucida_grande.ttf
│ │ ├── netflix_sans.ttf
│ │ ├── open_sans.ttf
│ │ ├── poppins_regular.ttf
│ │ ├── productsans_black.ttf
│ │ ├── productsans_blackitalic.ttf
│ │ ├── productsans_bold.ttf
│ │ ├── productsans_bolditalic.ttf
│ │ ├── productsans_italic.ttf
│ │ ├── productsans_light.ttf
│ │ ├── productsans_lightitalic.ttf
│ │ ├── productsans_medium.ttf
│ │ ├── productsans_mediumitalic.ttf
│ │ ├── productsans_regular.ttf
│ │ ├── productsans_thin.ttf
│ │ ├── productsans_thinitalic.ttf
│ │ ├── stix_general.ttf
│ │ ├── times_new_roman.ttf
│ │ ├── trebuchet_ms.ttf
│ │ ├── ubuntu_regular.ttf
│ │ └── verdana.ttf
│ │ ├── layout
│ │ ├── account_managment.xml
│ │ ├── account_single.xml
│ │ ├── account_switch.xml
│ │ ├── activity_main.xml
│ │ ├── activity_main_tv.xml
│ │ ├── add_account_input.xml
│ │ ├── add_remove_sites.xml
│ │ ├── add_site_input.xml
│ │ ├── bottom_input_dialog.xml
│ │ ├── bottom_selection_dialog.xml
│ │ ├── cast_item.xml
│ │ ├── chromecast_subtitle_settings.xml
│ │ ├── dialog_loading.xml
│ │ ├── dialog_online_subtitles.xml
│ │ ├── download_child_episode.xml
│ │ ├── download_header_episode.xml
│ │ ├── empty_layout.xml
│ │ ├── fragment_child_downloads.xml
│ │ ├── fragment_downloads.xml
│ │ ├── fragment_home.xml
│ │ ├── fragment_home_tv.xml
│ │ ├── fragment_player.xml
│ │ ├── fragment_player_tv.xml
│ │ ├── fragment_result.xml
│ │ ├── fragment_result_swipe.xml
│ │ ├── fragment_search.xml
│ │ ├── fragment_setup_language.xml
│ │ ├── fragment_setup_layout.xml
│ │ ├── fragment_setup_media.xml
│ │ ├── fragment_setup_provider_languages.xml
│ │ ├── fragment_trailer.xml
│ │ ├── home_episodes_expanded.xml
│ │ ├── home_result_big_grid.xml
│ │ ├── home_result_grid.xml
│ │ ├── home_result_grid_expanded.xml
│ │ ├── home_select_mainpage.xml
│ │ ├── homepage_parent.xml
│ │ ├── homepage_parent_tv.xml
│ │ ├── loading_downloads.xml
│ │ ├── loading_episode.xml
│ │ ├── loading_line.xml
│ │ ├── loading_line_short.xml
│ │ ├── loading_line_short_center.xml
│ │ ├── loading_list.xml
│ │ ├── loading_poster.xml
│ │ ├── logcat.xml
│ │ ├── main_settings.xml
│ │ ├── options_popup_tv.xml
│ │ ├── player_custom_layout.xml
│ │ ├── player_custom_layout_tv.xml
│ │ ├── player_episodes.xml
│ │ ├── player_episodes_large.xml
│ │ ├── player_episodes_small.xml
│ │ ├── player_select_source_and_subs.xml
│ │ ├── provider_list.xml
│ │ ├── quick_search.xml
│ │ ├── result_episode.xml
│ │ ├── result_episode_both.xml
│ │ ├── result_episode_large.xml
│ │ ├── result_mini_image.xml
│ │ ├── result_poster.xml
│ │ ├── result_recommendations.xml
│ │ ├── result_sync.xml
│ │ ├── result_tag.xml
│ │ ├── search_history_item.xml
│ │ ├── search_result_compact.xml
│ │ ├── search_result_grid.xml
│ │ ├── search_result_grid_expanded.xml
│ │ ├── search_result_super_compact.xml
│ │ ├── settings_title_top.xml
│ │ ├── sort_bottom_footer_add_choice.xml
│ │ ├── sort_bottom_sheet.xml
│ │ ├── sort_bottom_single_choice.xml
│ │ ├── sort_bottom_single_choice_color.xml
│ │ ├── sort_bottom_single_choice_double_text.xml
│ │ ├── stream_input.xml
│ │ ├── subtitle_offset.xml
│ │ ├── subtitle_settings.xml
│ │ ├── toast.xml
│ │ └── trailer_custom_layout.xml
│ │ ├── menu
│ │ ├── bottom_nav_menu.xml
│ │ └── cast_expanded_controller_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_banner.xml
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── navigation
│ │ └── mobile_navigation.xml
│ │ ├── values-ar
│ │ └── strings.xml
│ │ ├── values-bp
│ │ └── strings.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings-de.xml
│ │ ├── values-el
│ │ └── strings.xml
│ │ ├── values-es
│ │ ├── array.xml
│ │ └── strings-es.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-hi
│ │ └── strings.xml
│ │ ├── values-in
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-mk
│ │ └── strings.xml
│ │ ├── values-ml
│ │ └── strings.xml
│ │ ├── values-mo
│ │ └── string.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-no
│ │ └── strings.xml
│ │ ├── values-pl
│ │ ├── array.xml
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings-pt.xml
│ │ ├── values-ro
│ │ └── strings.xml
│ │ ├── values-sv
│ │ └── strings.xml
│ │ ├── values-tl
│ │ └── strings.xml
│ │ ├── values-tr
│ │ ├── array.xml
│ │ └── strings.xml
│ │ ├── values-vi
│ │ ├── array.xml
│ │ └── strings.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ ├── values
│ │ ├── array.xml
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ ├── backup_descriptor.xml
│ │ ├── provider_paths.xml
│ │ ├── settings_account.xml
│ │ ├── settings_media_lang.xml
│ │ ├── settings_player.xml
│ │ ├── settings_updates.xml
│ │ ├── settins_general.xml
│ │ └── settins_ui.xml
│ ├── prerelease
│ ├── ic_launcher-playstore.png
│ └── res
│ │ ├── drawable-v24
│ │ ├── ic_banner_background.xml
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_banner_foreground.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_banner.xml
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── ic_launcher_background.xml
│ │ └── strings.xml
│ ├── release
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_banner_background.xml
│ │ ├── mipmap-anydpi-v26
│ │ └── ic_banner.xml
│ │ └── mipmap-xhdpi
│ │ └── ic_banner.png
│ └── test
│ └── java
│ └── com
│ └── lagradost
│ └── cloudstream3
│ └── ProviderTests.kt
├── build.gradle
├── docs
├── _config.yml
├── index.html
├── keys.json
├── providers.json
├── script.js
└── style.css
├── fastlane
└── metadata
│ └── android
│ ├── de-DE
│ ├── full_description.txt
│ └── short_description.txt
│ ├── en-US
│ ├── changelogs
│ │ └── 2.txt
│ ├── full_description.txt
│ ├── short_description.txt
│ └── title.txt
│ ├── es-AR
│ ├── full_description.txt
│ └── short_description.txt
│ ├── it-IT
│ ├── full_description.txt
│ └── short_description.txt
│ ├── mk-MK
│ ├── full_description.txt
│ ├── short_description.txt
│ └── title.txt
│ └── zh-CN
│ ├── full_description.txt
│ └── short_description.txt
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── providers.json
└── settings.gradle
/.github/ISSUE_TEMPLATE/feature-request.yml:
--------------------------------------------------------------------------------
1 | name: ⭐ Feature request
2 | description: Suggest a feature to improve the app
3 | labels: [enhancement]
4 | body:
5 |
6 | - type: textarea
7 | id: feature-description
8 | attributes:
9 | label: Describe your suggested feature
10 | description: How can an existing source be improved?
11 | placeholder: |
12 | Example:
13 | "It should work like this..."
14 | validations:
15 | required: true
16 |
17 | - type: textarea
18 | id: other-details
19 | attributes:
20 | label: Other details
21 | placeholder: |
22 | Additional details and attachments.
23 |
24 | - type: checkboxes
25 | id: acknowledgements
26 | attributes:
27 | label: Acknowledgements
28 | description: Your issue will be closed if you haven't done these steps.
29 | options:
30 | - label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open issue.
31 | required: true
32 | - label: I have written a short but informative title.
33 | required: true
34 | - label: I will fill out all of the requested information in this form.
35 | required: true
36 |
--------------------------------------------------------------------------------
/.github/downloads.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/.github/downloads.jpg
--------------------------------------------------------------------------------
/.github/home.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/.github/home.jpg
--------------------------------------------------------------------------------
/.github/player.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/.github/player.jpg
--------------------------------------------------------------------------------
/.github/results.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/.github/results.jpg
--------------------------------------------------------------------------------
/.github/search.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/.github/search.jpg
--------------------------------------------------------------------------------
/.github/workflows/pull_request.yml:
--------------------------------------------------------------------------------
1 | name: Artifact Build
2 |
3 | on: [pull_request]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - uses: actions/checkout@v2
10 | - name: Set up JDK 11
11 | uses: actions/setup-java@v2
12 | with:
13 | java-version: '11'
14 | distribution: 'adopt'
15 | - name: Grant execute permission for gradlew
16 | run: chmod +x gradlew
17 | - name: Run Gradle
18 | run: ./gradlew assembleDebug
19 | - name: Upload Artifact
20 | uses: actions/upload-artifact@v2
21 | with:
22 | name: pull-request-build
23 | path: "app/build/outputs/apk/debug/*.apk"
24 |
--------------------------------------------------------------------------------
/.github/workflows/site_list.yml:
--------------------------------------------------------------------------------
1 | name: Create site list
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | paths:
7 | - 'app/src/main/java/com/lagradost/cloudstream3/*providers/*Provider.kt'
8 | - '.github/workflows/site_list.yml'
9 | - '.github/site-list.py'
10 | - 'docs/providers.json'
11 | - 'app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt'
12 |
13 | concurrency:
14 | group: "site-list"
15 | cancel-in-progress: true
16 |
17 | jobs:
18 | create:
19 | runs-on: ubuntu-latest
20 | steps:
21 | - uses: actions/checkout@v2
22 | - name: Edit providers.json
23 | run: |
24 | python3 .github/site-list.py
25 | - name: Commit to the repo
26 | run: |
27 | git config user.name "GitHub Actions"
28 | git config user.email "actions@github.com"
29 | git add .
30 | # "echo" returns true so the build succeeds, even if no changed files
31 | git commit -m 'chore(docs): update list of sites' || echo
32 | git push
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/misc.xml
6 | /.idea/libraries
7 | /.idea/modules.xml
8 | /.idea/workspace.xml
9 | /.idea/navEditor.xml
10 | /.idea/assetWizardSettings.xml
11 | .DS_Store
12 | /build
13 | /captures
14 | .externalNativeBuild
15 | .cxx
16 | local.properties
17 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | CloudStream
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/discord.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/app/src/debug/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-hdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/drawable-hdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-mdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/drawable-mdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-xhdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/drawable-xhdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-xxhdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/drawable-xxhdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/debug/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/app/src/debug/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | CloudStream Debug
3 |
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/BullStream.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.M3u8Helper
7 |
8 | class BullStream : ExtractorApi() {
9 | override val name = "BullStream"
10 | override val mainUrl = "https://bullstream.xyz"
11 | override val requiresReferer = false
12 | val regex = Regex("(?<=sniff\\()(.*)(?=\\)\\);)")
13 |
14 | override suspend fun getUrl(url: String, referer: String?): List? {
15 | val data = regex.find(app.get(url).text)?.value
16 | ?.replace("\"", "")
17 | ?.split(",")
18 | ?: return null
19 |
20 | val m3u8 = "$mainUrl/m3u8/${data[1]}/${data[2]}/master.txt?s=1&cache=${data[4]}"
21 | println("shiv : $m3u8")
22 | return M3u8Helper.generateM3u8(
23 | name,
24 | m3u8,
25 | url,
26 | headers = mapOf("referer" to url, "accept" to "*/*")
27 | )
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/GMPlayer.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.M3u8Helper
7 |
8 | class GMPlayer : ExtractorApi() {
9 | override val name = "GM Player"
10 | override val mainUrl = "https://gmplayer.xyz"
11 | override val requiresReferer = true
12 |
13 | override suspend fun getUrl(url: String, referer: String?): List? {
14 | val ref = referer ?: return null
15 | val id = url.substringAfter("/video/").substringBefore("/")
16 |
17 | val m3u8 = app.post(
18 | "$mainUrl/player/index.php?data=$id&do=getVideo",
19 | mapOf(
20 | "accept" to "*/*",
21 | "referer" to ref,
22 | "x-requested-with" to "XMLHttpRequest",
23 | "origin" to mainUrl
24 | ),
25 | data = mapOf("hash" to id, "r" to ref)
26 | ).parsed().videoSource ?: return null
27 |
28 | return M3u8Helper.generateM3u8(
29 | name,
30 | m3u8,
31 | ref,
32 | headers = mapOf("accept" to "*/*")
33 | )
34 | }
35 |
36 | private data class GmResponse(
37 | val videoSource: String? = null
38 | )
39 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/GenericM3U8.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.network.WebViewResolver
5 | import com.lagradost.cloudstream3.utils.ExtractorApi
6 | import com.lagradost.cloudstream3.utils.ExtractorLink
7 | import com.lagradost.cloudstream3.utils.M3u8Helper
8 |
9 |
10 | open class GenericM3U8 : ExtractorApi() {
11 | override var name = "Upstream"
12 | override var mainUrl = "https://upstream.to"
13 | override val requiresReferer = false
14 |
15 | override suspend fun getUrl(url: String, referer: String?): List {
16 | val response = app.get(
17 | url, interceptor = WebViewResolver(
18 | Regex("""master\.m3u8""")
19 | )
20 | )
21 | val sources = mutableListOf()
22 | if (response.url.contains("m3u8"))
23 | M3u8Helper.generateM3u8(
24 | name,
25 | response.url,
26 | url,
27 | headers = response.headers.toMap()
28 | ).forEach { link ->
29 | sources.add(link)
30 | }
31 | return sources
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/GuardareStream.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 | import com.fasterxml.jackson.annotation.JsonProperty
3 | import com.lagradost.cloudstream3.utils.ExtractorLink
4 | import com.lagradost.cloudstream3.app
5 | import com.lagradost.cloudstream3.utils.*
6 |
7 | open class GuardareStream : ExtractorApi() {
8 | override var name = "Guardare"
9 | override var mainUrl = "https://guardare.stream"
10 | override val requiresReferer = false
11 |
12 | data class GuardareJsonData (
13 | @JsonProperty("data") val data : List,
14 | )
15 |
16 | data class GuardareData (
17 | @JsonProperty("file") val file : String,
18 | @JsonProperty("label") val label : String,
19 | @JsonProperty("type") val type : String
20 | )
21 |
22 | override suspend fun getUrl(url: String, referer: String?): List? {
23 | val response = app.post(url.replace("/v/","/api/source/"), data = mapOf("d" to mainUrl)).text
24 | val jsonvideodata = AppUtils.parseJson(response)
25 | return jsonvideodata.data.map {
26 | ExtractorLink(
27 | it.file+".${it.type}",
28 | this.name,
29 | it.file+".${it.type}",
30 | mainUrl,
31 | it.label.filter{ it.isDigit() }.toInt(),
32 | false
33 | )
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/Jawcloud.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.M3u8Helper
7 |
8 |
9 | open class Jawcloud : ExtractorApi() {
10 | override var name = "Jawcloud"
11 | override var mainUrl = "https://jawcloud.co"
12 | override val requiresReferer = false
13 |
14 | override suspend fun getUrl(url: String, referer: String?): List? {
15 | val doc = app.get(url).document
16 | val urlString = doc.select("html body div source").attr("src")
17 | val sources = mutableListOf()
18 | if (urlString.contains("m3u8"))
19 | M3u8Helper.generateM3u8(
20 | name,
21 | urlString,
22 | url,
23 | headers = app.get(url).headers.toMap()
24 | ).forEach { link -> sources.add(link) }
25 | return sources
26 | }
27 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/M3u8Manifest.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | //{"auto":"/manifests/movies/15559/1624728920/qDwu5BOsfAwfTmnnjmkmXA/master.m3u8","1080p":"https://vdoc3.sallenes.space/qDwu5BOsfAwfTmnnjmkmXA/1624728920/storage6/movies/the-man-with-the-iron-heart-2017/1080p/index.m3u8","720p":"https://vdoc3.sallenes.space/qDwu5BOsfAwfTmnnjmkmXA/1624728920/storage6/movies/the-man-with-the-iron-heart-2017/720p/index.m3u8","360p":"https://vdoc3.sallenes.space/qDwu5BOsfAwfTmnnjmkmXA/1624728920/storage6/movies/the-man-with-the-iron-heart-2017/360p/index.m3u8","480p":"https://vdoc3.sallenes.space/qDwu5BOsfAwfTmnnjmkmXA/1624728920/storage6/movies/the-man-with-the-iron-heart-2017/480p/index.m3u8"}
4 | object M3u8Manifest {
5 | // URL = first, QUALITY = second
6 | fun extractLinks(m3u8Data: String): ArrayList> {
7 | val data: ArrayList> = ArrayList()
8 | Regex("\"(.*?)\":\"(.*?)\"").findAll(m3u8Data).forEach {
9 | var quality = it.groupValues[1].replace("auto", "Auto")
10 | if (quality != "Auto" && !quality.endsWith('p')) quality += "p"
11 | val url = it.groupValues[2]
12 | data.add(Pair(url, quality))
13 | }
14 | return data
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/Maxstream.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.utils.ExtractorLink
4 | import com.lagradost.cloudstream3.app
5 | import com.lagradost.cloudstream3.utils.*
6 |
7 | open class Maxstream : ExtractorApi() {
8 | override var name = "Maxstream"
9 | override var mainUrl = "https://maxstream.video/"
10 | override val requiresReferer = false
11 | override suspend fun getUrl(url: String, referer: String?): List? {
12 | val extractedLinksList: MutableList = mutableListOf()
13 | val response = app.get(url).text
14 | val jstounpack = Regex("cript\">eval((.|\\n)*?)").find(response)?.groups?.get(1)?.value
15 | val unpacjed = JsUnpacker(jstounpack).unpack()
16 | val extractedUrl = unpacjed?.let { Regex("""src:"((.|\n)*?)",type""").find(it) }?.groups?.get(1)?.value.toString()
17 |
18 | M3u8Helper.generateM3u8(
19 | name,
20 | extractedUrl,
21 | url,
22 | headers = mapOf("referer" to url)
23 | ).forEach { link ->
24 | extractedLinksList.add(link)
25 | }
26 |
27 | return extractedLinksList
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/Mcloud.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | open class Mcloud : WcoStream() {
4 | override var name = "Mcloud"
5 | override var mainUrl = "https://mcloud.to"
6 | override val requiresReferer = true
7 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/MixDrop.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.*
5 |
6 | class MixDropBz : MixDrop(){
7 | override var mainUrl = "https://mixdrop.bz"
8 | }
9 |
10 | class MixDropCh : MixDrop(){
11 | override var mainUrl = "https://mixdrop.ch"
12 | }
13 | class MixDropTo : MixDrop(){
14 | override var mainUrl = "https://mixdrop.to"
15 | }
16 |
17 | open class MixDrop : ExtractorApi() {
18 | override var name = "MixDrop"
19 | override var mainUrl = "https://mixdrop.co"
20 | private val srcRegex = Regex("""wurl.*?=.*?"(.*?)";""")
21 | override val requiresReferer = false
22 |
23 | override fun getExtractorUrl(id: String): String {
24 | return "$mainUrl/e/$id"
25 | }
26 |
27 | override suspend fun getUrl(url: String, referer: String?): List? {
28 | with(app.get(url)) {
29 | getAndUnpack(this.text).let { unpackedText ->
30 | srcRegex.find(unpackedText)?.groupValues?.get(1)?.let { link ->
31 | return listOf(
32 | ExtractorLink(
33 | name,
34 | name,
35 | httpsify(link),
36 | url,
37 | Qualities.Unknown.value,
38 | )
39 | )
40 | }
41 | }
42 | }
43 | return null
44 | }
45 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/Mp4Upload.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.Qualities
7 | import com.lagradost.cloudstream3.utils.getAndUnpack
8 |
9 | class Mp4Upload : ExtractorApi() {
10 | override var name = "Mp4Upload"
11 | override var mainUrl = "https://www.mp4upload.com"
12 | private val srcRegex = Regex("""player\.src\("(.*?)"""")
13 | override val requiresReferer = true
14 |
15 | override suspend fun getUrl(url: String, referer: String?): List? {
16 | with(app.get(url)) {
17 | getAndUnpack(this.text).let { unpackedText ->
18 | val quality = unpackedText.lowercase().substringAfter(" height=").substringBefore(" ").toIntOrNull()
19 | srcRegex.find(unpackedText)?.groupValues?.get(1)?.let { link ->
20 | return listOf(
21 | ExtractorLink(
22 | name,
23 | name,
24 | link,
25 | url,
26 | quality ?: Qualities.Unknown.value,
27 | )
28 | )
29 | }
30 | }
31 | }
32 | return null
33 | }
34 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/PlayerVoxzer.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.M3u8Helper
7 |
8 |
9 | open class PlayerVoxzer : ExtractorApi() {
10 | override var name = "Voxzer"
11 | override var mainUrl = "https://player.voxzer.org"
12 | override val requiresReferer = false
13 |
14 | override suspend fun getUrl(url: String, referer: String?): List? {
15 | val listurl = url.replace("/view/","/list/")
16 | val urltext = app.get(listurl, referer = url).text
17 | val m3u8regex = Regex("((https:|http:)\\/\\/.*\\.m3u8)")
18 | val sources = mutableListOf()
19 | val listm3 = m3u8regex.find(urltext)?.value
20 | if (listm3?.contains("m3u8") == true)
21 | M3u8Helper.generateM3u8(
22 | name,
23 | listm3,
24 | url,
25 | headers = app.get(url).headers.toMap()
26 | ).forEach { link ->
27 | sources.add(link)
28 | }
29 | return sources
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/SpeedoStream.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty
4 | import com.lagradost.cloudstream3.app
5 | import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
6 | import com.lagradost.cloudstream3.utils.ExtractorApi
7 | import com.lagradost.cloudstream3.utils.ExtractorLink
8 | import com.lagradost.cloudstream3.utils.M3u8Helper
9 |
10 | class SpeedoStream : ExtractorApi() {
11 | override val name = "SpeedoStream"
12 | override val mainUrl = "https://speedostream.com"
13 | override val requiresReferer = true
14 |
15 | override suspend fun getUrl(url: String, referer: String?): List {
16 | val sources = mutableListOf()
17 | app.get(url, referer = referer).document.select("script").map { script ->
18 | if (script.data().contains("jwplayer(\"vplayer\").setup(")) {
19 | val data = script.data().substringAfter("sources: [")
20 | .substringBefore("],").replace("file", "\"file\"").trim()
21 | tryParseJson(data)?.let {
22 | M3u8Helper.generateM3u8(
23 | name,
24 | it.file,
25 | "$mainUrl/",
26 | ).forEach { m3uData -> sources.add(m3uData) }
27 | }
28 | }
29 | }
30 | return sources
31 | }
32 |
33 | private data class File(
34 | @JsonProperty("file") val file: String,
35 | )
36 |
37 |
38 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamTape.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.utils.ExtractorApi
5 | import com.lagradost.cloudstream3.utils.ExtractorLink
6 | import com.lagradost.cloudstream3.utils.Qualities
7 |
8 | class StreamTape : ExtractorApi() {
9 | override var name = "StreamTape"
10 | override var mainUrl = "https://streamtape.com"
11 | override val requiresReferer = false
12 |
13 | private val linkRegex =
14 | Regex("""'robotlink'\)\.innerHTML = '(.+?)'\+ \('(.+?)'\)""")
15 |
16 | override suspend fun getUrl(url: String, referer: String?): List? {
17 | with(app.get(url)) {
18 | linkRegex.find(this.text)?.let {
19 | val extractedUrl = "https:${it.groups[1]!!.value + it.groups[2]!!.value.substring(3,)}"
20 | return listOf(
21 | ExtractorLink(
22 | name,
23 | name,
24 | extractedUrl,
25 | url,
26 | Qualities.Unknown.value,
27 | )
28 | )
29 | }
30 | }
31 | return null
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/WatchSB.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors
2 |
3 | import com.lagradost.cloudstream3.app
4 | import com.lagradost.cloudstream3.network.WebViewResolver
5 | import com.lagradost.cloudstream3.utils.ExtractorApi
6 | import com.lagradost.cloudstream3.utils.ExtractorLink
7 | import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8
8 |
9 | open class WatchSB : ExtractorApi() {
10 | override var name = "WatchSB"
11 | override var mainUrl = "https://watchsb.com"
12 | override val requiresReferer = false
13 |
14 | override suspend fun getUrl(url: String, referer: String?): List {
15 | val response = app.get(
16 | url, interceptor = WebViewResolver(
17 | Regex("""master\.m3u8""")
18 | )
19 | )
20 |
21 | return generateM3u8(name, response.url, url, headers = response.headers.toMap())
22 | }
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/extractors/helper/AsianEmbedHelper.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.extractors.helper
2 |
3 | import android.util.Log
4 | import com.lagradost.cloudstream3.SubtitleFile
5 | import com.lagradost.cloudstream3.apmap
6 | import com.lagradost.cloudstream3.app
7 | import com.lagradost.cloudstream3.utils.ExtractorLink
8 | import com.lagradost.cloudstream3.utils.loadExtractor
9 |
10 | class AsianEmbedHelper {
11 | companion object {
12 | suspend fun getUrls(
13 | url: String,
14 | subtitleCallback: (SubtitleFile) -> Unit,
15 | callback: (ExtractorLink) -> Unit
16 | ) {
17 | // Fetch links
18 | val doc = app.get(url).document
19 | val links = doc.select("div#list-server-more > ul > li.linkserver")
20 | if (!links.isNullOrEmpty()) {
21 | links.apmap {
22 | val datavid = it.attr("data-video") ?: ""
23 | //Log.i("AsianEmbed", "Result => (datavid) ${datavid}")
24 | if (datavid.isNotBlank()) {
25 | val res = loadExtractor(datavid, url, subtitleCallback, callback)
26 | Log.i("AsianEmbed", "Result => ($res) (datavid) $datavid")
27 | }
28 | }
29 | }
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/metaproviders/AnilistRedirector.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.metaproviders
2 |
3 | import com.lagradost.cloudstream3.ErrorLoadingException
4 | import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.SyncApis
5 | import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.aniListApi
6 | import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.malApi
7 | import com.lagradost.cloudstream3.utils.SyncUtil
8 |
9 | object SyncRedirector {
10 | val syncApis = SyncApis
11 |
12 | suspend fun redirect(url: String, preferredUrl: String): String {
13 | for (api in syncApis) {
14 | if (url.contains(api.mainUrl)) {
15 | val otherApi = when (api.name) {
16 | aniListApi.name -> "anilist"
17 | malApi.name -> "myanimelist"
18 | else -> return url
19 | }
20 |
21 | return SyncUtil.getUrlsFromId(api.getIdFromUrl(url), otherApi).firstOrNull { realUrl ->
22 | realUrl.contains(preferredUrl)
23 | } ?: run {
24 | throw ErrorLoadingException("Page does not exist on $preferredUrl")
25 | }
26 | }
27 | }
28 | return url
29 | }
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/AsianLoadProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | import com.lagradost.cloudstream3.TvType
4 |
5 | /** Needs to inherit from MainAPI() to
6 | * make the app know what functions to call
7 | */
8 | class AsianLoadProvider : VidstreamProviderTemplate() {
9 | override var name = "AsianLoad"
10 | override var mainUrl = "https://asianembed.io"
11 | override val homePageUrlList = listOf(
12 | mainUrl,
13 | "$mainUrl/recently-added-raw",
14 | "$mainUrl/movies",
15 | "$mainUrl/kshow",
16 | "$mainUrl/popular",
17 | "$mainUrl/ongoing-series"
18 | )
19 |
20 | override val iv = "9262859232435825"
21 | override val secretKey = "93422192433952489752342908585752"
22 | override val secretDecryptKey = secretKey
23 |
24 | override val supportedTypes = setOf(TvType.AsianDrama)
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/DopeboxProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | class DopeboxProvider : SflixProvider() {
4 | override var mainUrl = "https://dopebox.to"
5 | override var name = "Dopebox"
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/FmoviesToProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | class FmoviesToProvider : BflixProvider() {
4 | override var mainUrl = "https://fmovies.to"
5 | override var name = "Fmovies.to"
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/HDTodayProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | class HDTodayProvider : SflixProvider() {
4 | override var mainUrl = "https://hdtoday.cc"
5 | override var name = "HDToday"
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/PelisplusProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | import com.lagradost.cloudstream3.TvType
4 |
5 | /** Needs to inherit from MainAPI() to
6 | * make the app know what functions to call
7 | */
8 | class PelisplusProvider : PelisplusProviderTemplate() {
9 | // mainUrl is good to have as a holder for the url to make future changes easier.
10 | override var mainUrl = "https://pelisplus.icu"
11 |
12 | // name is for how the provider will be named which is visible in the UI, no real rules for this.
13 | override var name = "Pelisplus"
14 |
15 | override val homePageUrlList = listOf(
16 | mainUrl,
17 | "$mainUrl/movies",
18 | "$mainUrl/series",
19 | "$mainUrl/new-season",
20 | "$mainUrl/popular"
21 | )
22 |
23 | // This is just extra metadata about what type of movies the provider has.
24 | // Needed for search functionality.
25 | override val supportedTypes = setOf(TvType.TvSeries, TvType.Movie)
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SflixProProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | class SflixProProvider : BflixProvider() {
4 | override var mainUrl = "https://sflix.pro"
5 | override var name = "Sflix.pro"
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SolarmovieProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | class SolarmovieProvider : SflixProvider() {
4 | override var mainUrl = "https://solarmovie.pe"
5 | override var name = "Solarmovie"
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/movieproviders/VidEmbedProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.movieproviders
2 |
3 | import com.lagradost.cloudstream3.TvType
4 |
5 | /** Needs to inherit from MainAPI() to
6 | * make the app know what functions to call
7 | */
8 | class VidEmbedProvider : VidstreamProviderTemplate() {
9 | // mainUrl is good to have as a holder for the url to make future changes easier.
10 | override var mainUrl = "https://membed.net"
11 |
12 | // name is for how the provider will be named which is visible in the UI, no real rules for this.
13 | override var name = "VidEmbed"
14 |
15 | override val homePageUrlList: List = listOf(
16 | mainUrl,
17 | "$mainUrl/movies",
18 | "$mainUrl/series",
19 | "$mainUrl/recommended-series",
20 | "$mainUrl/cinema-movies"
21 | )
22 |
23 | override val iv = "9225679083961858"
24 | override val secretKey = "25742532592138496744665879883281"
25 | override val secretDecryptKey = secretKey
26 |
27 | // This is just extra metadata about what type of movies the provider has.
28 | // Needed for search functionality.
29 | override val supportedTypes = setOf(TvType.TvSeries, TvType.Movie)
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/receivers/VideoDownloadRestartReceiver.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.receivers
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.util.Log
7 |
8 | class VideoDownloadRestartReceiver : BroadcastReceiver() {
9 | override fun onReceive(context: Context?, intent: Intent?) {
10 | Log.i("Broadcast Listened", "Service tried to stop")
11 |
12 | // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
13 | // context?.startForegroundService(Intent(context, VideoDownloadKeepAliveService::class.java).putExtra(START_VALUE_KEY, RESTART_ALL_DOWNLOADS_AND_QUEUE))
14 | // } else {
15 | // context?.startService(Intent(context, VideoDownloadKeepAliveService::class.java).putExtra(START_VALUE_KEY, RESTART_ALL_DOWNLOADS_AND_QUEUE))
16 | // }
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/services/VideoDownloadService.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.services
2 |
3 | import android.app.IntentService
4 | import android.content.Intent
5 | import com.lagradost.cloudstream3.utils.VideoDownloadManager
6 |
7 | class VideoDownloadService : IntentService("VideoDownloadService") {
8 | override fun onHandleIntent(intent: Intent?) {
9 | if (intent != null) {
10 | val id = intent.getIntExtra("id", -1)
11 | val type = intent.getStringExtra("type")
12 | if (id != -1 && type != null) {
13 | val state = when (type) {
14 | "resume" -> VideoDownloadManager.DownloadActionType.Resume
15 | "pause" -> VideoDownloadManager.DownloadActionType.Pause
16 | "stop" -> VideoDownloadManager.DownloadActionType.Stop
17 | else -> return
18 | }
19 | VideoDownloadManager.downloadEvent.invoke(Pair(id, state))
20 | }
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubProvider.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.subtitles
2 |
3 | import androidx.annotation.WorkerThread
4 | import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities.SubtitleEntity
5 | import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities.SubtitleSearch
6 | import com.lagradost.cloudstream3.syncproviders.AuthAPI
7 |
8 | interface AbstractSubProvider {
9 | @WorkerThread
10 | suspend fun search(query: SubtitleSearch): List? {
11 | throw NotImplementedError()
12 | }
13 |
14 | @WorkerThread
15 | suspend fun load(data: SubtitleEntity): String? {
16 | throw NotImplementedError()
17 | }
18 | }
19 |
20 | interface AbstractSubApi : AbstractSubProvider, AuthAPI
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubtitleEntities.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.subtitles
2 |
3 | import com.lagradost.cloudstream3.TvType
4 |
5 | class AbstractSubtitleEntities {
6 | data class SubtitleEntity(
7 | var idPrefix : String,
8 | var name: String = "", //Title of movie/series. This is the one to be displayed when choosing.
9 | var lang: String = "en",
10 | var data: String = "", //Id or link, depends on provider how to process
11 | var type: TvType = TvType.Movie, //Movie, TV series, etc..
12 | var source: String,
13 | var epNumber: Int? = null,
14 | var seasonNumber: Int? = null,
15 | var year: Int? = null,
16 | var isHearingImpaired: Boolean = false
17 | )
18 |
19 | data class SubtitleSearch(
20 | var query: String = "",
21 | var imdb: Long? = null,
22 | var lang: String? = null,
23 | var epNumber: Int? = null,
24 | var seasonNumber: Int? = null,
25 | var year: Int? = null
26 | )
27 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/syncproviders/AuthAPI.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.syncproviders
2 |
3 | interface AuthAPI {
4 | val name: String
5 | val icon: Int?
6 |
7 | val requiresLogin: Boolean
8 |
9 | val createAccountUrl : String?
10 |
11 | // don't change this as all keys depend on it
12 | val idPrefix: String
13 |
14 | // if this returns null then you are not logged in
15 | fun loginInfo(): LoginInfo?
16 | fun logOut()
17 |
18 | class LoginInfo(
19 | val profilePicture: String? = null,
20 | val name: String?,
21 | val accountIndex: Int,
22 | )
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/syncproviders/OAuth2API.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.syncproviders
2 |
3 | interface OAuth2API : AuthAPI {
4 | val key: String
5 | val redirectUrl: String
6 |
7 | suspend fun handleRedirect(url: String) : Boolean
8 | fun authenticate()
9 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/syncproviders/SyncRepo.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.syncproviders
2 |
3 | import com.lagradost.cloudstream3.ErrorLoadingException
4 | import com.lagradost.cloudstream3.mvvm.Resource
5 | import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
6 | import com.lagradost.cloudstream3.mvvm.safeApiCall
7 |
8 | class SyncRepo(private val repo: SyncAPI) {
9 | val idPrefix = repo.idPrefix
10 | val name = repo.name
11 | val icon = repo.icon
12 | val mainUrl = repo.mainUrl
13 | val requiresLogin = repo.requiresLogin
14 |
15 | suspend fun score(id: String, status: SyncAPI.SyncStatus): Resource {
16 | return safeApiCall { repo.score(id, status) }
17 | }
18 |
19 | suspend fun getStatus(id : String) : Resource {
20 | return safeApiCall { repo.getStatus(id) ?: throw ErrorLoadingException("No data") }
21 | }
22 |
23 | suspend fun getResult(id : String) : Resource {
24 | return safeApiCall { repo.getResult(id) ?: throw ErrorLoadingException("No data") }
25 | }
26 |
27 | suspend fun search(query : String) : Resource> {
28 | return safeApiCall { repo.search(query) ?: throw ErrorLoadingException() }
29 | }
30 |
31 | fun hasAccount() : Boolean {
32 | return normalSafeApiCall { repo.loginInfo() != null } ?: false
33 | }
34 |
35 | fun getIdFromUrl(url : String) : String = repo.getIdFromUrl(url)
36 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/DropboxApi.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.syncproviders.providers
2 |
3 | import com.lagradost.cloudstream3.syncproviders.AuthAPI
4 | import com.lagradost.cloudstream3.syncproviders.OAuth2API
5 |
6 | //TODO dropbox sync
7 | class Dropbox : OAuth2API {
8 | override val idPrefix = "dropbox"
9 | override var name = "Dropbox"
10 | override val key = "zlqsamadlwydvb2"
11 | override val redirectUrl = "dropboxlogin"
12 | override val requiresLogin = true
13 | override val createAccountUrl: String? = null
14 |
15 | override val icon: Int
16 | get() = TODO("Not yet implemented")
17 |
18 | override fun authenticate() {
19 | TODO("Not yet implemented")
20 | }
21 |
22 | override suspend fun handleRedirect(url: String): Boolean {
23 | TODO("Not yet implemented")
24 | }
25 |
26 | override fun logOut() {
27 | TODO("Not yet implemented")
28 | }
29 |
30 | override fun loginInfo(): AuthAPI.LoginInfo? {
31 | TODO("Not yet implemented")
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/WatchType.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui
2 |
3 | import androidx.annotation.DrawableRes
4 | import androidx.annotation.StringRes
5 | import com.lagradost.cloudstream3.R
6 |
7 | enum class WatchType(val internalId: Int, @StringRes val stringRes: Int, @DrawableRes val iconRes: Int) {
8 | // FIX ICONS
9 | WATCHING(0, R.string.type_watching, R.drawable.ic_baseline_remove_red_eye_24),
10 | COMPLETED(1, R.string.type_completed, R.drawable.ic_baseline_check_24),
11 | ONHOLD(2, R.string.type_on_hold, R.drawable.ic_baseline_pause_24),
12 | DROPPED(3, R.string.type_dropped, R.drawable.ic_baseline_close_24),
13 | PLANTOWATCH(4, R.string.type_plan_to_watch, R.drawable.ic_baseline_close_24),
14 | NONE(5, R.string.type_none, R.drawable.ic_baseline_remove_red_eye_24);
15 |
16 | companion object {
17 | fun fromInternalId(id: Int?) = values().find { value -> value.internalId == id } ?: NONE
18 | }
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadButtonViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui.download
2 |
3 | interface DownloadButtonViewHolder {
4 | var downloadButton : EasyDownloadButton
5 | fun reattachDownloadButton()
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomTextRenderer.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui.player
2 |
3 | import android.os.Looper
4 | import com.google.android.exoplayer2.text.SubtitleDecoderFactory
5 | import com.google.android.exoplayer2.text.TextOutput
6 |
7 | class CustomTextRenderer(
8 | offset: Long,
9 | output: TextOutput?,
10 | outputLooper: Looper?,
11 | decoderFactory: SubtitleDecoderFactory = SubtitleDecoderFactory.DEFAULT
12 | ) : NonFinalTextRenderer(output, outputLooper, decoderFactory) {
13 | private var offsetPositionUs: Long = 0L
14 |
15 | init {
16 | setRenderOffsetMs(offset)
17 | }
18 |
19 | fun setRenderOffsetMs(offset : Long) {
20 | offsetPositionUs = offset * 1000L
21 | }
22 |
23 | fun getRenderOffsetMs() : Long {
24 | return offsetPositionUs / 1000L
25 | }
26 |
27 | override fun render( positionUs: Long, elapsedRealtimeUs: Long) {
28 | super.render(positionUs + offsetPositionUs, elapsedRealtimeUs + offsetPositionUs)
29 | }
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/player/IGenerator.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui.player
2 |
3 | import com.lagradost.cloudstream3.utils.ExtractorLink
4 | import com.lagradost.cloudstream3.utils.ExtractorUri
5 |
6 | interface IGenerator {
7 | val hasCache: Boolean
8 |
9 | fun hasNext(): Boolean
10 | fun hasPrev(): Boolean
11 | fun next()
12 | fun prev()
13 | fun goto(index: Int)
14 |
15 | fun getCurrentId(): Int? // this is used to save data or read data about this id
16 | fun getCurrent(offset : Int = 0): Any? // this is used to get metadata about the current playing, can return null
17 | fun getAll() : List? // thus us used to get the metadata about all entries, not needed
18 |
19 | /* not safe, must use try catch */
20 | suspend fun generateLinks(
21 | clearCache: Boolean,
22 | isCasting: Boolean,
23 | callback: (Pair) -> Unit,
24 | subtitleCallback: (SubtitleData) -> Unit,
25 | offset : Int = 0,
26 | ): Boolean
27 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/player/SSLTrustManager.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui.player
2 |
3 | import java.security.cert.X509Certificate
4 | import javax.net.ssl.X509TrustManager
5 |
6 | class SSLTrustManager : X509TrustManager {
7 | override fun checkClientTrusted(p0: Array?, p1: String?) {
8 | }
9 |
10 | override fun checkServerTrusted(p0: Array?, p1: String?) {
11 | }
12 |
13 | override fun getAcceptedIssuers(): Array {
14 | return arrayOf()
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/ui/search/SyncSearchViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.ui.search
2 |
3 | import com.lagradost.cloudstream3.SearchQuality
4 | import com.lagradost.cloudstream3.SearchResponse
5 | import com.lagradost.cloudstream3.TvType
6 | import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.SyncApis
7 |
8 | class SyncSearchViewModel {
9 | private val repos = SyncApis
10 |
11 | data class SyncSearchResultSearchResponse(
12 | override val name: String,
13 | override val url: String,
14 | override val apiName: String,
15 | override var type: TvType?,
16 | override var posterUrl: String?,
17 | override var id: Int?,
18 | override var quality: SearchQuality? = null,
19 | override var posterHeaders: Map? = null,
20 | ) : SearchResponse
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/Coroutines.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | import android.os.Handler
4 | import android.os.Looper
5 | import com.lagradost.cloudstream3.mvvm.logError
6 | import kotlinx.coroutines.*
7 |
8 | object Coroutines {
9 | fun main(work: suspend (() -> Unit)): Job {
10 | return CoroutineScope(Dispatchers.Main).launch {
11 | work()
12 | }
13 | }
14 |
15 | fun ioSafe(work: suspend (() -> Unit)): Job {
16 | return CoroutineScope(Dispatchers.IO).launch {
17 | try {
18 | work()
19 | } catch (e: Exception) {
20 | logError(e)
21 | }
22 | }
23 | }
24 |
25 | suspend fun ioWork(work: suspend (() -> T)): T {
26 | return withContext(Dispatchers.IO) {
27 | work()
28 | }
29 | }
30 |
31 | fun runOnMainThread(work: (() -> Unit)) {
32 | val mainHandler = Handler(Looper.getMainLooper())
33 | mainHandler.post {
34 | work()
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/Event.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | class Event {
4 | private val observers = mutableSetOf<(T) -> Unit>()
5 |
6 | operator fun plusAssign(observer: (T) -> Unit) {
7 | observers.add(observer)
8 | }
9 |
10 | operator fun minusAssign(observer: (T) -> Unit) {
11 | observers.remove(observer)
12 | }
13 |
14 | operator fun invoke(value: T) {
15 | for (observer in observers)
16 | observer(value)
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/ExtensionManager.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | /*
4 | import android.content.Context
5 | import dalvik.system.PathClassLoader
6 | import java.io.File
7 | open class TestSource {
8 | open fun doMath(): Int {
9 | return 33
10 | }
11 | }
12 | object ExtensionManager {
13 | fun getSourceFromDex(context: Context, pkgName: String, file: File): TestSource? {
14 | val loader = PathClassLoader(file.absolutePath, context.classLoader)
15 |
16 | val obj = Class.forName(pkgName, false, loader).newInstance()
17 | if (obj is TestSource) {
18 | println("MATH : ${obj.doMath()}")
19 | }
20 |
21 | return null
22 | }
23 | }*/
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/IDisposable.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | interface IDisposable {
4 | fun dispose()
5 | }
6 |
7 | object IDisposableHelper {
8 | fun using(disposeObject: T, work: (T) -> Unit) {
9 | work.invoke(disposeObject)
10 | disposeObject.dispose()
11 | }
12 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/IOnBackPressed.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | interface IOnBackPressed {
4 | fun onBackPressed(): Boolean
5 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lagradost/cloudstream3/utils/Vector2.kt:
--------------------------------------------------------------------------------
1 | package com.lagradost.cloudstream3.utils
2 |
3 | import kotlin.math.sqrt
4 |
5 | data class Vector2(val x : Float, val y : Float) {
6 | operator fun minus(other: Vector2) = Vector2(x - other.x, y - other.y)
7 | operator fun plus(other: Vector2) = Vector2(x + other.x, y + other.y)
8 | operator fun times(other: Int) = Vector2(x * other, y * other)
9 | override fun toString(): String = "($x, $y)"
10 | fun distanceTo(other: Vector2) = (this - other).length
11 | private val lengthSquared by lazy { x*x + y*y }
12 | val length by lazy { sqrt(lengthSquared) }
13 | }
--------------------------------------------------------------------------------
/app/src/main/res/anim/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/go_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/go_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_pop_enter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_pop_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/pop_enter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/pop_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/rotate_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
19 |
23 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/rotate_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
19 |
23 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/color/check_selection_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/item_select_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/player_button_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/player_on_button_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/tag_stroke_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/color/text_selection_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/toggle_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/color/toggle_button_outline.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/toggle_button_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/toggle_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/background_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_description_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_fullscreen_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_fullscreen_exit_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_grid_view_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_list_alt_24.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_remove_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_restore_page_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_save_as_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_sync_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_theaters_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circular_progress_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
10 |
11 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circular_progress_bar_filled.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/custom_rating_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/dialog__window_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/dub_bg_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/example_poster.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/drawable/example_poster.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_anilist_icon.xml:
--------------------------------------------------------------------------------
1 |
8 |
12 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_add_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_arrow_back_ios_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_arrow_forward_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_aspect_ratio_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_autorenew_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_bookmark_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_bookmark_border_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_1_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_2_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_3_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_4_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_5_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_6_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_7_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_bug_report_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_check_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_check_24_listview.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_clear_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_close_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_color_lens_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_construction_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_delete_outline_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_developer_mode_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_dns_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_fast_forward_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_favorite_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_favorite_border_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_filter_list_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_hd_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_hearing_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_keyboard_arrow_down_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_keyboard_arrow_left_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_keyboard_arrow_right_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_language_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_more_vert_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_notifications_active_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_ondemand_video_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_pause_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_picture_in_picture_alt_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_play_arrow_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_playlist_play_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_public_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_remove_red_eye_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_skip_next_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_speed_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_star_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_star_border_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_storage_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_subtitles_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_system_update_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_text_format_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_touch_app_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_tune_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_tv_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_visibility_off_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_volume_down_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_volume_mute_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_volume_up_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_warning_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_dashboard_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_home_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_info_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_remove_red_eye_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_share_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_subtitles_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_outline_voice_over_off_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/mal_logo.xml:
--------------------------------------------------------------------------------
1 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/material_outline_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/netflix_download.xml:
--------------------------------------------------------------------------------
1 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/netflix_pause.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/netflix_play.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/netflix_skip_back.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
17 |
20 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/netflix_skip_forward.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
17 |
20 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/outline.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/outline_card.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | -
6 |
7 |
10 |
11 |
12 |
13 |
14 | -
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/outline_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pause_to_play.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
11 |
15 |
16 |
17 |
18 |
19 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/play_to_pause.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
11 |
15 |
16 |
17 |
18 |
19 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/player_button_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/player_gradient_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
12 |
13 |
14 | -
15 |
16 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/progress_drawable_vertical.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 |
10 | -
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/question_mark_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rating_empty.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
15 |
16 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rating_fill.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
15 |
16 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rddone.xml:
--------------------------------------------------------------------------------
1 |
9 |
14 |
19 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rderror.xml:
--------------------------------------------------------------------------------
1 |
9 |
14 |
19 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rdload.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rdpause.xml:
--------------------------------------------------------------------------------
1 |
9 |
14 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/search_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/search_icon.xml:
--------------------------------------------------------------------------------
1 |
8 |
14 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/solid_primary.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/splash_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sub_bg_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/subtitles_background_gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/subtitles_preview_background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/drawable/subtitles_preview_background.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tab_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/title_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/type_bg_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_bottom_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_locked.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
21 |
26 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_pause.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_play.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_tap_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_tap_button_always_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_tap_button_skip.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/video_unlocked.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/font/comic_sans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/comic_sans.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/consola.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/consola.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/futura.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/futura.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/gotham.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/gotham.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/lucida_grande.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/lucida_grande.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/netflix_sans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/netflix_sans.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/open_sans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/open_sans.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/poppins_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/poppins_regular.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_black.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_blackitalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_blackitalic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_bold.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_bolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_bolditalic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_italic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_light.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_lightitalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_lightitalic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_medium.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_mediumitalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_mediumitalic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_regular.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_thin.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/productsans_thinitalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/productsans_thinitalic.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/stix_general.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/stix_general.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/times_new_roman.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/times_new_roman.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/trebuchet_ms.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/trebuchet_ms.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/ubuntu_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/ubuntu_regular.ttf
--------------------------------------------------------------------------------
/app/src/main/res/font/verdana.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/font/verdana.ttf
--------------------------------------------------------------------------------
/app/src/main/res/layout/account_single.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
17 |
22 |
23 |
24 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/account_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/add_remove_sites.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
12 |
21 |
22 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/empty_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/homepage_parent_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
19 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading_downloads.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading_line.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading_line_short.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading_line_short_center.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading_poster.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/player_episodes.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/result_episode_both.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/result_mini_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/result_poster.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/result_tag.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sort_bottom_footer_add_choice.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sort_bottom_single_choice.xml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sort_bottom_single_choice_color.xml:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/toast.xml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/bottom_nav_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/cast_expanded_controller_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 10dp
6 | 0dp
7 | 2dp
8 | 15dp
9 |
10 | 15dp
11 | 3dp
12 | 15dp
13 |
14 | 2000
15 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_descriptor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
9 |
12 |
15 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/settings_account.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
11 |
14 |
17 |
18 |
22 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/settings_media_lang.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
13 |
17 |
21 |
--------------------------------------------------------------------------------
/app/src/prerelease/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/prerelease/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/prerelease/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/app/src/prerelease/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | CloudStream Beta
3 |
--------------------------------------------------------------------------------
/app/src/release/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/release/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/app/src/release/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | ext.kotlin_version = "1.7.10"
4 | repositories {
5 | google()
6 | jcenter()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.2.1'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | jcenter()
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-modernist
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | CloudStream-3 Supported Sites
10 |
11 |
12 |
13 |
14 |
15 |
Sites supported (0 ):
16 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/keys.json:
--------------------------------------------------------------------------------
1 | {
2 | "wco_key": "51wJ0FDq/UVCefLopEcmK3ni4WIQztMjZdSYOsbHr9R2h7PvxBGAuglaN8+kXT6y",
3 | "wco_cipher_key": "vZUFFBPxMqDeOfAm"
4 | }
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | Mit CloudStream-3 kannst du Filme, TV-Serien und Anime streamen und herunterladen. Die App kommt ganz ohne Werbung und Analytik aus. Sie unterstützt mehrere Trailer-, Filmseiten und vieles mehr. Integrierte Features:
2 |
3 |
4 |
5 | Lesezeichen
6 |
7 |
8 | Herunterladen und Streamen von Filmen, Fernsehsendungen und Animes
9 |
10 |
11 | Downloads von Untertiteln
12 |
13 |
14 | Chromecast-Unterstützung
15 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/short_description.txt:
--------------------------------------------------------------------------------
1 | Streame und downloade Filme, TV-Serien und Animes.
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2.txt:
--------------------------------------------------------------------------------
1 | - Changelog added!
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | CloudStream-3 lets you stream and download Movies, TV-Series and Anime. The app comes without any ads and analytics. It supports multiple trailer & movie sites, and more. Features include:
2 |
3 |
4 |
5 | Bookmarks
6 |
7 |
8 | Download and stream movies, tv-shows and anime
9 |
10 |
11 | subtitle downloads
12 |
13 |
14 | Chromecast support
15 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | Stream and download Movies, TV-Series and Anime.
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | CloudStream
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-AR/full_description.txt:
--------------------------------------------------------------------------------
1 | CloudStream-3 te permite ver y descargar Películas, Series de TV y Anime. La app viene sin anuncios ni análisis. Soporta varios sitios de películas, trailers... Y
2 | Más. Características incluídas:
3 |
4 |
5 | Marcadores
6 |
7 | Descargar y mirar streams de películas, shows de TV y anime
8 |
9 | Descargar subtítulos
10 |
11 | Soporte para Chromecast
12 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-AR/short_description.txt:
--------------------------------------------------------------------------------
1 | Mirá y descarga Películas, Series y Anime
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/full_description.txt:
--------------------------------------------------------------------------------
1 | CloudStream-3 ti consente di riprodurre in streaming e scaricare film, serie TV e anime. L'app viene fornita senza pubblicità e tracking. Supporta più siti di trailer e film e altro ancora. Le caratteristiche includono:
2 |
3 |
4 |
5 | Preferiti
6 |
7 |
8 | Scarica e riproduci in streaming film, serie TV e anime
9 |
10 |
11 | scarica sottotitoli
12 |
13 |
14 | Supporto a Chromecast
15 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/short_description.txt:
--------------------------------------------------------------------------------
1 | Scarica e riproduci in streaming film, serie TV e anime
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/full_description.txt:
--------------------------------------------------------------------------------
1 | CloudStream-3 ви дозволува да гледате и превземате филмови, телевизиски серии и аниме. Апликацијата нема реклами и аналитика. Таа поддржува повеќе страници за трејлери, филмови и многу повеќе.
2 | Апликацијата вклучува:
3 |
4 | Обележувачи (bookmarks)
5 | Превземање и гледање на филмови, серии и аниме
6 | Превземање на преводи
7 | Поддршка за Chromecast
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/short_description.txt:
--------------------------------------------------------------------------------
1 | Гледање и превземање на филмови, серии и аниме
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/title.txt:
--------------------------------------------------------------------------------
1 | CloudStream
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/full_description.txt:
--------------------------------------------------------------------------------
1 | CloudStream-3可以让你串流和下载电影、剧集和动漫。这款应用没有任何广告和分析。它支持多个预告片和电影网站等。特点包括:
2 |
3 |
4 |
5 | 书签
6 |
7 |
8 | 下载和串流电影、电视节目和动漫
9 |
10 |
11 | 下载字幕
12 |
13 |
14 | 支持投屏
15 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/short_description.txt:
--------------------------------------------------------------------------------
1 | 串流和下载电影、剧集和动漫。
2 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 | # Kotlin code style for this project: "official" or "obsolete":
21 | kotlin.code.style=official
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AniFOSS/CloudStream-3/9678b068ee11f2c30f3eff3526faf430b5d966cf/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Apr 30 17:11:15 CEST 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name = "CloudStream"
--------------------------------------------------------------------------------