{"id":16489166,"url":"https://github.com/thundernet8/wrgamevideos-api","last_synced_at":"2026-06-07T18:32:19.144Z","repository":{"id":79658649,"uuid":"48536902","full_name":"thundernet8/WRGameVideos-API","owner":"thundernet8","description":"a server which provide API data for my next iOS app","archived":false,"fork":false,"pushed_at":"2016-01-18T15:06:32.000Z","size":7143,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-11T19:12:15.401Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thundernet8.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}},"created_at":"2015-12-24T09:50:55.000Z","updated_at":"2017-05-20T13:53:26.000Z","dependencies_parsed_at":"2023-03-18T23:03:19.428Z","dependency_job_id":null,"html_url":"https://github.com/thundernet8/WRGameVideos-API","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2FWRGameVideos-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2FWRGameVideos-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2FWRGameVideos-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2FWRGameVideos-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thundernet8","download_url":"https://codeload.github.com/thundernet8/WRGameVideos-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241315535,"owners_count":19942853,"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":[],"created_at":"2024-10-11T13:43:24.860Z","updated_at":"2026-06-07T18:32:19.080Z","avatar_url":"https://github.com/thundernet8.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## WRGameVideos-API\n\n** 因考虑到视频版权原因和 App Store 的审核问题，项目放弃 **\n\n此项目本为一个视频聚合应用的 API 端，移动适配的 web 客户端请求数据生成页面，并通过Webview 组件加载至 iOS 应用中，少量的交互由 Javascript和 Objective-C 通信完成\n\nSupply most model data via RESTFUL API, only JSON/JSONP supported\n\n## Screenshots\n\n![Home](https://raw.githubusercontent.com/thundernet8/WRGameVideos-API/master/screenshot/home.png)\n\n![Channel index](https://raw.githubusercontent.com/thundernet8/WRGameVideos-API/master/screenshot/channel-index.png)\n\n![Channel](https://raw.githubusercontent.com/thundernet8/WRGameVideos-API/master/screenshot/channel.png)\n\n![Channel video list](https://raw.githubusercontent.com/thundernet8/WRGameVideos-API/master/screenshot/channel-video-list.png)\n\n![Detail](https://raw.githubusercontent.com/thundernet8/WRGameVideos-API/master/screenshot/detail.png)\n\n## Third App\n\n* register url - yourapidomain.com/apps/register (need login first)\n* app review - yourapidomain.com/apps/\u003cint:appid\u003e/review (only administrator can approve a app)\n* app list - yourapidomain.com/apps\n* app detail - yourapidomain.com/apps/\u003cint:appid\u003e (you can find ==App Key== and ==App Secret== here)\n\n## API request\n\n### request access_token\n\n* request url - yourapidomain.com/open/v1.0/access_token (GET method)\n* url parameters\n-   * grant_type - 'authorization_code'\n-   * client_id - your app key\n-   * tsamp - timestamp now (UTC+0)\n-   * redirect_uri - callback url, must same as the redirect url provided when registered the app\n-   * sign - a hmac hash string of 'app key+timestrap+redirect url', using App Secret as encrypt key\n\nif everything is ok, return a json string including access_token:\n```\n{\n  \"access_token\": \"ab891e*************d20\", \n  \"expiration\": 3600\n}\n```\n\nor return kinds of errors like:\n```\n{\n  \"error\": \"incorrect_sign\", \n  \"message\": \"signature error\"\n}\n```\n### request user_access_token\n\nif use API that need login, get user_access_token instead of app general access_token\n\nfirst to redirect user to login page and get a timed authorization code\n\n* request url - yourapidomain.com/open/v1.0/authorize (GET method)\n* url parameters\n-   * response_type - 'code'\n-   * client_id - your app key\n-   * tsamp - timestamp now (UTC+0)\n-   * redirect_uri - callback url, must same as the redirect url provided when registered the app\n-   * sign - a hmac hash string of 'app key+timestrap+redirect url', using App Secret as encrypt key\n\n\nafter user logged in, api site will redirect to the redirect_url you given with the timed authorization code, using the code to request info necessory, i.e. user_access_code\n\n* request url - yourapidomain.com/open/v1.0/user_token (GET method)\n* url parameters\n-   * grant_type - 'authorization_code'\n-   * client_id - your app key\n-   * tsamp - timestamp now (UTC+0)\n-   * redirect_uri - callback url, must same as the redirect url provided when registered the app\n-   * code - a timed sign get from previous step\n\n### request API using access_token\n\nbefore API request, access_token will be verified, you can put you access_token in url parameters or HTTP headers(X-TOKEN:\u003cyour access_token\u003e)\nif an error occured, it will return:\n\n```\n{\n  \"error\": \"unauthorized\", \n  \"message\": \"Invalid access_token\", \n  \"request_token\": \"yourapidomain/open/v1.0/access_token\"\n}\n```\nyou can forward to the value of `request_token` which is a url to request a access_token\n\na successful API request result is based on the specified API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthundernet8%2Fwrgamevideos-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthundernet8%2Fwrgamevideos-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthundernet8%2Fwrgamevideos-api/lists"}