Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Wednesday, 2 October 2019

Facetune maker Lightricks expands with a trio of apps for small businesses

Fresh of its recent raise of $135 million, Lightricks, the maker of popular selfie editor Facetune and several other top consumer-focused photo editing applications, is branching out. The company this morning announced the launch of a suite of new mobile apps aimed at small businesses that want professional content creation tools to help them with their social media marketing campaigns.

Together, the new suite of apps is known as “BoostApps,” and includes StoryBoost for creating unique stories for Instagram; VideoBoost for making videos using your own clips, stock footage or both; and PosterBoost, which lets you turn photos into engaging posts for your business.

Screens StoryBoost

The move to serve the needs of small businesses was directed by how Lightricks saw its users taking advantage of its existing products, like Enlight Videoleap and Enlight Photofox, the company says.

When Lightricks surveyed its Videoleap subscriber base, for example, it found that roughly 30% were already using the app for business purposes.

“We understood then, that our next product had to be a tool specifically for businesses. Businesses are results-driven, and that’s the basis of the BoostApps — empowering and enabling businesses to create social media marketing materials that are not only beautiful, but also effective,” says Zeev Farbman, Lightricks Co-Founder and CEO.

Like its consumer line of apps, the BoostApps are designed to be easy to use — even if you’re not a photo-editing professional or have a social media marketing background.

Instead, they’re for people who consider themselves a small business owner, Farbman says. That could be a yoga teacher, startup entrepreneur, influencer, or anyone else.

Screens PosterBoost

“The common denominator is that they started their business because they were passionate about something, and then needed to become full-fledged marketers in addition to building their businesses,” he explains. “They know that social media can get them to their marketing goals, but they don’t know how to get results without investing too much time and money.”

Like the rest of the Lightricks line, the apps are subscription-based. StoryBoost and PosterBoost are $7.99 per month, and VideoBoost is $9.99 per month. There are also annual discounts ($44.99 or $59.99, respectively) and the option for a lifetime purchase ($99.99 or $119.99). And you can subscribe to all three in a bundle for $95.99 per year. 

Also like other Lightricks apps, the new BoostApps rely heavily on the company’s technology investments and A.I. Lightricks has a dedicated team whose job it is to figure out ways to integrate their most advanced and innovative research into their apps.

For example, it created a camera motion effect that can be used on every image, using A.I. technology to build a depth map that turns the images into engaging posters, says Farbman. They also created a video engine capable of producing a range of composition effects. And the results render in real-time on the device, to make the editing process feel fast.

Screens VideoBoost

While there are plenty of other companies offering creative tools for marketers, Lightricks brings its own knowledge of digital marketing to the table — something it credits with its own success, in fact.

The launch of the SMB-focused suite doesn’t mean Lightricks is pivoting to pro tools, however, Farbman clarified. It’s more of an expansion.

Case in point: the company today is also partnering with subscription beauty service BoxyCharm on a collaboration with Facetune2, which will allow users to virtually “try on” products in the October box using AR filters.

That said, Lightricks does plan to further expand BoostApps further down the road with more tools that will integrate scheduling, smart algorithms, and post optimization features.

The Jerusalem-headquartered company, which recently achieved unicorn status, is growing quickly. It now has over 300 employees, and expects to reach at least 500 by 2020. And despite the sizable funding round, Lightricks says it tries to stay profitable or as close to profitable as possible, even when launching new products.

Combined, its suite of apps has seen nearly 200 million downloads and has 3 million paying subscribers.

To date, Lightricks has raised $205 million.

BoostApps will be available today on iOS devices. (iOS 11 or higher).

 



from TechCrunch https://ift.tt/2osIvyp
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support