{"id":19536171,"url":"https://github.com/icysnex/serienstreamapi","last_synced_at":"2026-02-10T22:09:00.370Z","repository":{"id":254448684,"uuid":"846230574","full_name":"IcySnex/SerienStreamAPI","owner":"IcySnex","description":"API to search \u0026 download series/anime from s.to/aniworld.to","archived":false,"fork":false,"pushed_at":"2026-02-07T19:07:21.000Z","size":73,"stargazers_count":28,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-02-08T03:59:05.935Z","etag":null,"topics":["anime","aniworld","downloading","scraper","serienstream","series"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IcySnex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-22T19:28:14.000Z","updated_at":"2026-02-07T19:01:26.000Z","dependencies_parsed_at":"2026-02-07T21:09:28.194Z","dependency_job_id":null,"html_url":"https://github.com/IcySnex/SerienStreamAPI","commit_stats":null,"previous_names":["icysnex/serienstreamapi"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/IcySnex/SerienStreamAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcySnex%2FSerienStreamAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcySnex%2FSerienStreamAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcySnex%2FSerienStreamAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcySnex%2FSerienStreamAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IcySnex","download_url":"https://codeload.github.com/IcySnex/SerienStreamAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcySnex%2FSerienStreamAPI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29319438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","aniworld","downloading","scraper","serienstream","series"],"created_at":"2024-11-11T02:21:24.732Z","updated_at":"2026-02-10T22:09:00.345Z","avatar_url":"https://github.com/IcySnex.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SerienStreamAPI\nThis library allows you to search for any series on [SerienStream.to (s.to)](https://serien.domains/) and [AniWorld.to](https://anicloud.domains/). You can get all meta info about all episodes and movies of each series.\n\nThis library also allows you to extract the video stream url of common host-providers (like VOE, StreamTape, Doodstream, Vidoza) and directly download them via FFmpeg.\nThis API works by scraping the HTML data of SerienStream/AniWorld and then parsing it into easy-to-use models.\n\n---\n\n## Setup\nSetting up is pretty easy. Just create a new instance of `SerienStreamClient` with the given hostUrl (e.g. https://s.to/ or https://aniworld.to/) and \"site\" (for SerienStream it's \"serie\", for AniWorld its \"anime\"). If the host url is marked as \"unsafe\" you can set \"ignoreCerficiateValidation\" to true which will bypass SSL certificate verification. If you aim to download videos as well, you will have to create an instance of `DownloadClient`.\n```cs\n// Create a new SerienStreamClient\nSerienStreamClient client = new(hostUrl: \"https://aniworld.to/\", site: \"anime\", ignoreCerficiateValidation: false, logger: null);\n\n// Create a new DownloadClient\nDownloadClient downloadClient = new(ffmpegLocation: \"ffmpeg.exe\", ignoreCerficiateValidation: false, logger: null);\n```\n\n## Searching\n```cs\n// Search for a series via the title\nSeries series = await client.GetSeriesAsync(\"My Dress-Up Darling\");\nConsole.WriteLine(\"Title: {title}, Description: {description}\", series.Title, series.Description);\n\n\n// Get all episodes of a season\nMedia[] episodesOfSeason1 = await client.GetEpisodesAsync(\"My Dress-Up Darling\", 1);\nforeach(Media episode in episodesOfSeason1)\n   Console.WriteLine(\"[{number}] Title: {title}\", episode.Number, episode.Title);\n\nMedia[] movies = await client.GetMoviesAsync(\"My Dress-Up Darling\");\nforeach(Media movie in movies)\n   Console.WriteLine(\"[{number}] Title: {title}\", movie.Number, movie.Title);\n\n// Get video details\nVideoDetails episodeVideoDetails = await client.GetEpisodeVideoInfoAsync(\"My Dress-Up Darling\", 1, 1);\nforeach (VideoStream videoStream in episodeVideoDetails.Streams)\n   Console.WriteLine(\"Video Stream [{videoUrl]: {hoster}-{audioLanguage}-{subtitleLanguage}\", videoStream.VideoUrl, videoStream.Hoster, videoStream.Language.Audio, videoStream.Language.Subtitle);\n\nVideoDetails movieVideoDetails = await client.GetMovieVideoInfoAsync(\"My Dress-Up Darling\", 1);\nforeach (VideoStream videoStream in movieVideoDetails.Streams)\n   Console.WriteLine(\"Video Stream [{videoUrl]: {hoster}-{audioLanguage}-{subtitleLanguage}\", videoStream.VideoUrl, videoStream.Hoster, videoStream.Language.Audio, videoStream.Language.Subtitle);\n```\n\n## Downloading\nIn order to download any video from SerienStream/Aniworld you first have to get the video details of the episode/movie. Then you can select one of the available streams and extract the stream url. Then you can use FFmpeg to download the stream to a filepath.\n```cs\n// Get the video details of the first episode of the first season of the series \"My Dress-Up Darling\"\nVideoDetails videoDetails = await client.GetEpisodeVideoInfoAsync(series.Title, 1, 1);\n// Select the first German-audio video stream\nVideoStream videoStream = videoDetails.Streams.FirstOrDefault(stream =\u003e stream.Language.Audio == Language.German) ?? throw new Exception(\"No German video stream found!\");\n\n// Extract hoster stream url from video stream\nstring streamUrl = videoStream.Hoster switch\n{\n    Hoster.VOE =\u003e await downloadClient.GetVoeStreamUrlAsync(bestStream.VideoUrl),\n    Hoster.Streamtape =\u003e await downloadClient.GetStreamtapeStreamUrlAsync(bestStream.VideoUrl),\n    Hoster.Doodstream =\u003e await downloadClient.GetDoodstreamStreamUrlAsync(bestStream.VideoUrl),\n    Hoster.Vidoza =\u003e await downloadClient.GetVidozaStreamUrlAsync(bestStream.VideoUrl),\n    _ =\u003e throw new Exception(\"Hoster is not supported!\")\n};\n\n// Download video stream\nawait downloadClient.DownloadAsync(streamUrl, \"video.mp4\", null, new Progress\u003cEncodingProgress\u003e(progress =\u003e\n    logger.LogInformation(\"Downloading episode... Time: {timeElapsed}, Speed: {speed}x\", progress.TimeElapsed, progress.SpeedMultiplier)));\n```\n\n---\n\n## Questions/Issues\nIf you have any questions about this library or questions on how to use it. Please [open a new issue](https://github.com/IcySnex/SerienStreamAPI/issues) and I will quickly respond. For more usage examples you can look at the [Tests](https://github.com/IcySnex/SerienStreamAPI/tree/main/SerienStreamAPI.Tests)\n\n---\n\n## Legal Notice\nThis library is for educational purposes only. Downloading or accessing copyrighted content without permission may be illegal in your country. I am not responsible for any misuse or legal consequences. **Use at your own risk**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficysnex%2Fserienstreamapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficysnex%2Fserienstreamapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficysnex%2Fserienstreamapi/lists"}