{"_id":"@aphrody/voiranime","_rev":"5-431eb84cfd61a3059e824c2ae2826cfa","name":"@aphrody/voiranime","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.3":{"name":"@aphrody/voiranime","version":"0.1.3","_id":"@aphrody/voiranime@0.1.3","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"8b9a5135e47e5e9a57460311eeb9e48329181f6e","tarball":"https://registry.npmjs.org/@aphrody/voiranime/-/voiranime-0.1.3.tgz","fileCount":3,"integrity":"sha512-6v7AJd8IkgJ5mvmyTsL4L8lBr/8j1LB3SVYcWNP+F8/zA8aUYUjm+vCvvOVxzRPo/gylmoRn/LWd9MpKmFoFgA==","signatures":[{"sig":"MEYCIQDdcAqDj0/y2b0eZoawrrWiJD8esFx/QoPtb39I8CKmeQIhAMDdL2z+8flVdsru3SyA6YbFuIpQjmnrrr1zza1EIxNv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26890},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"7409bb65fef1c022208151a69304547bf9a4e516","_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_npmVersion":"9.2.0","directories":{},"_nodeVersion":"24.3.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/voiranime_0.1.3_1780527332163_0.9086500946695595","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aphrody/voiranime","version":"0.1.4","_id":"@aphrody/voiranime@0.1.4","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"f2be589774db81b292de4b486ffe45f0c9db6731","tarball":"https://registry.npmjs.org/@aphrody/voiranime/-/voiranime-0.1.4.tgz","fileCount":3,"integrity":"sha512-ObBFZUKl+6GPULZXZG1N96lhYTZIvfc7kZ2CnVslURqnVoPOueZZSHoLnPXrO6iUerumR/pZyUOgvetpz2iYdg==","signatures":[{"sig":"MEQCIFa8cMn3fhjpES1xuByYV3mttXR0r7AgbT92lHDhX8E9AiAdRu8AA8NNYJVfO7eSb8yurb/9LORHZ3hkd6tF/4SPcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26890},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"f2be589774db81b292de4b486ffe45f0c9db6731","exports":{".":"./src/index.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-ObBFZUKl+6GPULZXZG1N96lhYTZIvfc7kZ2CnVslURqnVoPOueZZSHoLnPXrO6iUerumR/pZyUOgvetpz2iYdg==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/voiranime_0.1.4_1780586732629_0.35378197332010086","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aphrody/voiranime","version":"0.1.5","license":"Apache-2.0","_id":"@aphrody/voiranime@0.1.5","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"dbd9801ebabb56fd9f3dbd09baae3280ca5a6a00","tarball":"https://registry.npmjs.org/@aphrody/voiranime/-/voiranime-0.1.5.tgz","fileCount":3,"integrity":"sha512-HWUn7Lfy5ojsHZzMZvSa0gnp1XXMMXdXVU46cxDJRLa+Jr2Du21PTqQdQzWJK1ZmBEKqSZywWGkVZ12kYGLDog==","signatures":[{"sig":"MEUCIQCEfDCJxJPU6qAjl57SoDxScYjo6zuvHo1kYBokqOOPAAIgAK2TfygkiNCFDtet7L/ao/KlwsIQrzQilm6EUU5mc7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26917},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"dbd9801ebabb56fd9f3dbd09baae3280ca5a6a00","exports":{".":"./src/index.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-HWUn7Lfy5ojsHZzMZvSa0gnp1XXMMXdXVU46cxDJRLa+Jr2Du21PTqQdQzWJK1ZmBEKqSZywWGkVZ12kYGLDog==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/voiranime_0.1.5_1786525422213_0.5516119995573829","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aphrody/voiranime","version":"0.2.0","license":"Apache-2.0","_id":"@aphrody/voiranime@0.2.0","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"dist":{"shasum":"35e77917aac6e432f3a65d93d59cf2957603a7ec","tarball":"https://registry.npmjs.org/@aphrody/voiranime/-/voiranime-0.2.0.tgz","fileCount":3,"integrity":"sha512-VaYuOSHAJroP1vui0xOGj/strWCToyIBZI4Do65KbJnc30sYmBvReMmRBRrEsPzz4UCQI/QWCgEAgH9dyDqY2w==","signatures":[{"sig":"MEYCIQCjtSjErccEZI7T8Jquujm8+l35Cy4XH0G+jVRKwOuVwQIhANHgTx7nk6ZSmoRXwcwrluNF6+BUSKZuoScL8xQM5IuT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26128},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"35e77917aac6e432f3a65d93d59cf2957603a7ec","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-VaYuOSHAJroP1vui0xOGj/strWCToyIBZI4Do65KbJnc30sYmBvReMmRBRrEsPzz4UCQI/QWCgEAgH9dyDqY2w==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/voiranime_0.2.0_1788431546376_0.8216031664273553","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@aphrody/voiranime@0.2.1","dist":{"shasum":"c50f4de326f9e60af9e9e232ffd3ec5d7fe97514","tarball":"https://registry.npmjs.org/@aphrody/voiranime/-/voiranime-0.2.1.tgz","fileCount":3,"integrity":"sha512-fxfCsHhByTV/glz3Lwi8SHneos/KCr4kKyweoNu7rDhHe7YRukiYTENT6sI+i98SNSnHoNvhp9V+ULX01KeUWA==","signatures":[{"sig":"MEQCICPhgitL7oZkvzj5OQadT/m5Hq7vdoV+kEUE4+h4tO4TAiAwX1gkY9HaV2vFpjNHG6lVrJXIZU5X+XgZlxE0OsclDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAtykFkwYNcm6Gr8mF7y2vIGuG20VSU8fqJ4AumL7pWeAiEA86QoOQe6YzjTe/z/3sZDESHw2dSTTZzjOkuq/PRfoKk="}],"unpackedSize":26128},"main":"./src/index.ts","name":"@aphrody/voiranime","type":"module","types":"./src/index.ts","shasum":"c50f4de326f9e60af9e9e232ffd3ec5d7fe97514","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts"},"license":"Apache-2.0","version":"0.2.1","_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-fxfCsHhByTV/glz3Lwi8SHneos/KCr4kKyweoNu7rDhHe7YRukiYTENT6sI+i98SNSnHoNvhp9V+ULX01KeUWA==","_npmVersion":"10.8.3","directories":{},"maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"_nodeVersion":"24.3.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voiranime_0.2.1_1788681558568_0.8102944057187091"}}},"time":{"created":"2026-06-03T22:55:31.968Z","modified":"2026-09-06T07:59:18.925Z","0.1.3":"2026-06-03T22:55:32.321Z","0.1.4":"2026-06-04T15:25:32.773Z","0.1.5":"2026-08-12T09:03:42.369Z","0.2.0":"2026-09-03T10:32:26.508Z","0.2.1":"2026-09-06T07:59:18.669Z"},"license":"Apache-2.0","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"readme":"# @aphrody/voiranime\n\nvoir-anime.to catalogue scraper and player resolver, built on bxc.\n\n```bash\nbxc voiranime search inazuma          # search the catalogue\nbxc voiranime info dragon-ball-vf     # metadata + episode list\nbxc voiranime resolve <embed-url>     # embed -> direct stream\n```\n\n```ts\nimport { VoiranimeScraper } from \"@aphrody/bxc/scrapers/voiranime\";\n\nconst va = new VoiranimeScraper();\nconst anime = await va.getAnime(\"dragon-ball-vf\");\nconst episode = await va.getEpisode(anime.episodes.at(-1)!.url);\nconst source = await va.resolveSource(episode.players[0], { enumerateQualities: true });\nawait va.close();\n```\n\nOptions: `profile` (`static` by default — zero spawn — up to `max`), `baseUrl`,\n`timeoutMs`, `retries`.\n\n## Player resolution\n\nHost recognition, packed-script unpacking, media extraction and HLS playlist\nparsing no longer live in this package: they sit in the **bxc media core**\n(`@aphrody/bxc/media`), shared with `@aphrody/animesama`. Both sites serve the\nsame hosts, so a dead domain or a changed player page is fixed in one place.\n\nWhat stays here is voir-anime's own knowledge (WordPress markup, episode lists,\nplayer tabs) plus the translation of the core's result into this package's\nvocabulary (`provider`, `headers`, `qualities`).\n\n`resolveSource` therefore also returns the `Referer`/`Origin` headers to replay,\nthe poster, and HLS variants as **absolute** URLs — two variants of the same\nheight are told apart by their bitrate — with an explicit error for proprietary\nor obfuscated players.\n","readmeFilename":"README.md"}