{"id":18962885,"url":"https://github.com/pr0pz/scene-release-parser-php","last_synced_at":"2025-04-19T11:53:16.257Z","repository":{"id":63676794,"uuid":"569737716","full_name":"pr0pz/scene-release-parser-php","owner":"pr0pz","description":"A library for parsing scene release names into simpler, reusable data.","archived":false,"fork":false,"pushed_at":"2024-06-02T16:24:54.000Z","size":462,"stargazers_count":16,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T22:06:40.126Z","etag":null,"topics":["parser","parser-library","predb","release","scene","scene-release","warez","warez-scripts","warezscene"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pr0pz.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-11-23T13:58:51.000Z","updated_at":"2025-04-09T10:23:13.000Z","dependencies_parsed_at":"2024-06-02T18:10:26.625Z","dependency_job_id":null,"html_url":"https://github.com/pr0pz/scene-release-parser-php","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pr0pz%2Fscene-release-parser-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pr0pz%2Fscene-release-parser-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pr0pz%2Fscene-release-parser-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pr0pz%2Fscene-release-parser-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pr0pz","download_url":"https://codeload.github.com/pr0pz/scene-release-parser-php/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249688865,"owners_count":21311306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["parser","parser-library","predb","release","scene","scene-release","warez","warez-scripts","warezscene"],"created_at":"2024-11-08T14:17:02.375Z","updated_at":"2025-04-19T11:53:16.239Z","avatar_url":"https://github.com/pr0pz.png","language":"PHP","readme":"# __Scene Release Parser__\n\n![Made with PHP](https://img.shields.io/static/v1?label\u0026message=PHP\u0026color=777BB3\u0026logo=php\u0026logoColor=fff)\n![Packagist package version](https://img.shields.io/packagist/v/propz/release-parser?color=777BB3\u0026label=Packagist)\n![Minimum PHP version: 7.0.0](https://img.shields.io/packagist/dependency-v/propz/release-parser/php?color=777BB3\u0026label=PHP)\n\n## __A library for parsing scene release names into simpler, reusable data.__\n\n_Like it? I'd appreciate the support :)_\n\n[![Follow on Twitter](https://img.shields.io/static/v1?label=Follow%20on\u0026message=Twitter\u0026color=1DA1F2\u0026logo=twitter\u0026logoColor=fff)](https://propz.de/twitter/)\n[![Watch on Twitch](https://img.shields.io/static/v1?label=Watch%20on\u0026message=Twitch\u0026color=bf94ff\u0026logo=twitch\u0026logoColor=fff)](https://propz.de/twitch/)\n[![Join on Discord](https://img.shields.io/static/v1?label=Join%20on\u0026message=Discord\u0026color=7289da\u0026logo=discord\u0026logoColor=fff)](https://propz.de/discord/)\n[![Donate on Ko-Fi](https://img.shields.io/static/v1?label=Donate%20on\u0026message=Ko-Fi\u0026color=ff5f5f\u0026logo=kofi\u0026logoColor=fff)](https://propz.de/kofi/)\n\n### __Description__\n\nThis library parses scene release names and splits the data into smaller, simpler, human readable and therefore more reusable data.\n\nThe applied rules are mostly based on studying the [existing collection of Scene rules](https://scenerules.org/) and other release examples from a PreDB, since a lot of releases are not named correctly (specially older ones).\n\nThe approach was to implement an algorithm that can really parse a variety of scene releases from all decades. The main test file covers some more complex names.\n\n### __Instructions__\n\nI assume you already know some PHP and [composer](https://getcomposer.org/) is already installed on your computer. The next steps are:\n\n› Install the library via composer ___OR___ download the [latest release](https://github.com/pr0pz/scene-release-parser-php/releases/latest);\n```sh\n$ composer require propz/release-parser\n```\n\n› Include the composer autoloader file into your project:\\\n```php\nrequire_once __DIR__ . '/vendor/autoload.php'\n```\n› Create a new ReleaseParser Class and pass the release name and (optionally) the release section (for better type parsing) as parameters;\\\n› You can use the get() function to retrieve an array with all values or just target a specific value with get('name')\n\n__Example:__\n\n```php\n\u003c?php\n// Include main composer autoloader file ...\nrequire_once __DIR__ . '/vendor/autoload.php'\n\n// Create class\n$release = new \\ReleaseParser\\ReleaseParser( '24.S02E02.9.00.Uhr.bis.10.00.Uhr.German.DL.TV.Dubbed.DVDRip.SVCD.READ.NFO-c0nFuSed', 'tv' );\n\n// See whats inside\nprint_r( $release-\u003eget() );\n\n=\u003e (\n    [release] =\u003e 24.S02E02.9.00.Uhr.bis.10.00.Uhr.German.DL.TV.Dubbed.DVDRip.SVCD.READ.NFO-c0nFuSed\n    [title] =\u003e 24\n    [title_extra] =\u003e 9 00 Uhr bis 10 00 Uhr\n    [group] =\u003e c0nFuSed\n    [year] =\u003e\n    [date] =\u003e\n    [season] =\u003e 2\n    [episode] =\u003e 2\n    [disc] =\u003e\n    [flags] =\u003e Array\n        (\n            [0] =\u003e READNFO\n            [1] =\u003e TV Dubbed\n        )\n\n    [source] =\u003e DVDRip\n    [format] =\u003e SVCD\n    [resolution] =\u003e\n    [audio] =\u003e\n    [device] =\u003e\n    [os] =\u003e\n    [version] =\u003e\n    [language] =\u003e Array\n        (\n            [de] =\u003e German\n            [multi] =\u003e Multilingual\n        )\n\n    [type] =\u003e TV\n)\n\n// Other examples\necho $release-\u003eget( 'source' );\nDVDRip\n\necho $release-\u003eget( 'format' );\nSVCD\n\nprint_r( $release-\u003eget( 'flags' ) );\nArray\n(\n    [0] =\u003e READNFO\n    [1] =\u003e TV Dubbed\n)\n\n```\n\n### __Found any Bugs?__\n\nIf you find any bugs/errors, feel free to [post an issue](https://github.com/pr0pz/scene-release-parser-php/issues).\n\n### __Similar projects and inspirations__\n- [pr0pz/scene-release-parser](https://github.com/pr0pz/scene-release-parser) - Identical to this project but in JavaScript\n- [matiassingers/scene-release](https://github.com/matiassingers/scene-release) (JavaScript)\n- [thcolin/scene-release-parser-php](https://github.com/thcolin/scene-release-parser-php) (PHP)\n- [majestixx/scene-release-parser-php-lib](https://github.com/majestixx/scene-release-parser-php-lib) (PHP)\n\n\n### __License__\n\n![License: MIT](https://img.shields.io/packagist/l/propz/release-parser)\n\n_That's it!_\n\n___Be excellent to each other. And, Party on, dudes!___","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpr0pz%2Fscene-release-parser-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpr0pz%2Fscene-release-parser-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpr0pz%2Fscene-release-parser-php/lists"}