Crypto 1919 Harika Bir Şifreleme Programı

Crypto 1919’u, metin ve görsel kriptolama programını, birkaç günlük yoğun çalışmanın ardından bitirdim. Bu sıradışı kriptolama mantığı ile “şifre” kavramını sayısal/metinsel algoritma anlayışından alıp; şifrelenebilir görsellikle ilişkilendirdim.

Programı ayrıntılı olarak incelemek ve indirmek için: http://crypto1919.beybut.com

Crypto 1919

Crypto 1919 ile Neler Yapabilirsiniz?

Yazılı ve görsel içeriklerinizi, şifrenizi bilenin açabileceği biçimde kriptolayın. Özeliniz size özel kalsın.

Örnek Kullanım Alanları:

Özel fotoğraflarınızı şifreli olarak gönderin.

Örneğin özel bir fotoğrafınızı, sevgilinize e-mail ile, Crypto 1919 kullanmadan gönderdiğinizde; bu fotoğraf ISP’nizin (Internet servis sağlayıcısının), e-mail dağıtıcınızın (gmail, hotmail, yandex vb.) üzerinden ve bunlarda iz bırakarak alıcının e-mail kutusuna ulaşır. Her ne kadar bu servislerde SSL kullanılsa da SSL’in sınırlı koruması, e-mailiniz hedefe ulaşana kadardır. Gönderdiğiniz e-maili sevgilinizin iş arkadaşının görmeyeceğini yahut onun e-mail hesabının çalınıp fotoğrafınıza tanık olunmayacağını garanti edemezsiniz. Eğer gönderdiğiniz e-mail yanlış kişilerin eline geçerse çok fazla sorununuz var demektir. Aynı durum sosyal medyadaki özel yazışmalarınızda da geçerlidir.

E-mail, blog, forum, panel, oyun… giriş bilgilerinizi hatta şifrelerinizi şifreli olarak saklayın.

Askeri operasyon koordinatlarını üstlerinize metinsel değil görsel kriptolu olarak gönderin.

Şirketiniz, kurumunuz için özel ve gizli yazışmalarda Crypto 1919’un gücüne güvenin.

Crypto 1919’un benzersiz görsel şifrelemesi istihbarat alanında dahi kullanıma uygundur. Çünkü Crypto 1919’un kripto çıktısı metin tabanlı (örn. md5, sha) bir algoritmaya dayanmaz. Program kırılsa bile şifre bilinmedikçe kriptolu JPG geri getirilemez.

Tamamen yerli, tamamen ücretsiz, tamamen güvenlidir.

Adblock’u Engellemenin En Kolay Yolu

Adblock, web sitelerindeki reklamları engelleyerek ziyaretçilerin reklamsız bir deneyim yaşamalarına yardımcı olan bir yazılım ve eklentidir. Firefox, Chrome gibi birçok popüler tarayıcıyı destekleyen bu eklenti kurulup aktifleştirildiğinde web sitenizi ziyaret eden kişi Google Adsense reklamları dahil hemen hiçbir reklamı görmez. Durum böyle olunca sitenizden elde ettiğiniz gelir düşer.

Adblock, bir sayfada reklamları engellerken bazı izler bırakır. Bu izlerden biri Adsense gibi iframe içinde reklam gösteren reklam ağlarındaki frameleri ziyaretçi gösteriminden kaldırmasıdır. O halde birkaç satırlık JS koduyla sayfadaki iframeleri kontrol edip; eğer frameler gösterilmiyorsa sayfada bir mesaj verdirerek ziyaretçiyi ana sayfamıza yönlendirelim.

JavaScript İle Adblock Tespiti ve Yönlendirme

<script type="text/javascript">
if(document.getElementsByTagName("iframe").item(0) == null)
{
alert("Reklam engelleme yazılımlarından birini (örn. Adblock) kullandığınız için bu sayfayı görüntüleyemiyorsunuz. Lütfen bu eklentiyi/programı kaldırarak tekrar deneyiniz.");
window.location = "http://nedir.beybut.com/";
}
</script>

Bu kodu reklam gösterdiğiniz sayfada </body> tagından hemen önce ekleyiniz. Eğer WordPress kullanıyorsanız temanızın footer.php dosyasına bu javascript kodunu ekleyebilirsiniz.

Adblock kullanan kişi sayfayı ziyaret ettiğinde önce bir mesaj kutusuyla karşılaşacak ardından ana sayfaya yönlendirilecek.

Tüm Domain Uzantıları, Domain Whois Servers ve Yanıtlar

Domain uzantıları, domain whois serverları ve bu sunucuların boş domainler sorgulandığında verdikleri yanıtlar özellikle domain whois scripti ve programı yazanların işine yarayacaktır. Icaan’in yeni top level alan adı uzantılarını onaylamasıyla yüzlerce alan adı uzantısı tescile ve ön kayda açıldı. 2016 Ağustos için tüm domain uzantıları, genel tescile açık olan, açık olmayan; ön tescil kabul eden ve yürürlükteki hemen her alan adı uzantısı aşağıdaki listede bulunuyor. Kolaylık olması amacıyla uzantı|whois server|yanıt biçiminde hazırladım.

PHP Ajax Domain Sorgulama Scripti için de bu liste işinize yarayacaktır.

Listede, ~976 adet uzantı, sunucu, yanıt yer alıyor.

aarp|whois.nic.aarp|no match
abbott|whois.afilias-srs.net|not found
abbvie|whois.afilias-srs.net|not found
abogado|whois-dub.mm-registry.com|available
abudhabi|whois.nic.abudhabi|no match
ac|whois.nic.ac|available
academy|whois.donuts.co|Domain not found
accountant|whois.nic.accountant|available
accountants|whois.donuts.co|Domain not found.
aco|whois.afilias-srs.net|not found
active|whois.afilias-srs.net|not found
actor|whois.unitedtld.com|Domain not found.
ad|whois.ripe.net|no entries found
adac|whois.nic.adac|no match
ads|domain-registry-whois.l.google.com|Domain not found
adult|whois.afilias-srs.net|NOT FOUND
ae|whois-check.aeda.net.ae|available
aeg|whois.nic.aeg|no match
aero|whois.aero|not found
af|whois.nic.af|No Object Found
afl|whois.nic.afl|available
ag|whois.nic.ag|not found
agakhan|whois.afilias-srs.net|not found
agency|whois.donuts.co|Domain not found.
airbus|whois.nic.airbus|no match
airforce|whois.unitedtld.com|Domain not found.
airtel|whois.nic.airtel|no match
akdn|whois.afilias-srs.net|not found
allfinanz|whois.ksregistry.net|object does not exist
ally|whois.afilias-srs.net|not found
alsace|whois-alsace.nic.fr|object does not exist
alstom|whois.nic.alstom|no match
am|whois.amnic.net|no match
amsterdam|whois.nic.amsterdam|Status: free
android|domain-registry-whois.l.google.com|Domain not found.
anquan|whois.teleinfo.cn|no match
anz|whois.nic.anz|No Data Found
apartments|whois.donuts.co|Domain not found.
app|whois.nic.google|not found
apple|whois.afilias-srs.net|not found
aquarelle|whois-aquarelle.nic.fr|object does not exist
archi|whois.ksregistry.net|object does not exist
army|whois.rightside.co|not found
arpa|whois.iana.org|but this server does not have
art|whois.centralnic.com|not found
arte|whois.nic.arte|no match
as|whois.nic.as|not found
asia|whois.nic.asia|not found
associates|whois.donuts.co|Domain not found.
at|whois.nic.at|nothing found
attorney|whois.rightside.co|Domain not found.
au|whois.audns.net.au|no data found
auction|whois.donuts.co|Domain not found.
audi|whois.afilias-srs.net|not found
audio|whois.uniregistry.net|available
auto|whois.uniregistry.net|available
autos|whois.afilias-srs.net|not found
avianca|whois.afilias-srs.net|not found
aw|whois.nic.aw|is free
ax|whois.ax|No records matching
baidu|whois.ngtld.cn|no match
band|whois.rightside.co|Domain not found.
bank|whois.nic.bank|no match
barcelona|whois.nic.barcelona|no match
barclaycard|whois.nic.barclaycard|No Data Found
barclays|whois.nic.barclays|No Data Found
barefoot|whois.nic.barefoot|no match
bargains|whois.donuts.co|Domain not found.
bauhaus|whois.nic.bauhaus|no match
bayern|whois-dub.mm-registry.com|object does not exist
bbc|whois.nic.bbc|available
bbva|whois.nic.bbva|no match
bcg|whois.afilias-srs.net|not found
bcn|whois.nic.bcn|no match
be|whois.dns.be|available
beats|whois.afilias-srs.net|not found
beer|whois-dub.mm-registry.com|available
bentley|whois.nic.bentley|available
berlin|whois.nic.berlin|object does not exist
best|whois.nic.best|available
bet|whois.afilias.net|not found
bg|whois.register.bg|does not exist in database
bi|whois1.nic.bi|Domain Status: No Object Found
bid|whois.nic.bid|available
bike|whois.donuts.co|Domain not found
bingo|whois.donuts.co|Domain not found.
bio|whois.ksregistry.net|object does not exist
biz|whois.biz|not found
bj|whois.nic.bj|No Object Found
black|whois.afilias.net|NOT FOUND
blackfriday|whois.uniregistry.net|available
blanco|whois.nic.blanco|no match
blog|whois.nic.blog|available
blue|whois.afilias.net|NOT FOUND
bms|whois.nic.bms|no match
bmw|whois.ksregistry.net|object does not exist
bn|whois.bnnic.bn|not found
bnl|whois.afilias-srs.net|not found
bnpparibas|whois.afilias-srs.net|NOT FOUND
boats|whois.afilias-srs.net|not found
boehringer|whois.afilias-srs.net|not found
bom|whois.gtlds.nic.br|object does not exist
bond|whois.nic.bond|no match
boo|domain-registry-whois.l.google.com|Domain not found.
boots|whois.nic.boots|available
bosch|whois.nic.bosch|no match
bostik|whois-bostik.nic.fr|object does not exist
boutique|whois.donuts.co|Domain not found.
br|whois.nic.br|no match for
bradesco|whois-cl01.mm-registry.com|available
bridgestone|whois.nic.bridgestone|No Data Found
broadway|whois-cl01.mm-registry.com|available
broker|whois.nic.broker|no match
brother|whois.nic.brother|not found
brussels|whois.nic.brussels|available
budapest|whois-dub.mm-registry.com|object does not exist
bugatti|whois.afilias-srs.net|not found
build|whois.nic.build|No Data Found
builders|whois.donuts.co|Domain not found
business|whois.donuts.co|Domain not found.
buy|whois.afilias-srs.net|not found
buzz|whois.nic.buzz|available
bw|whois.nic.net.bw|No Object Found
by|whois.cctld.by|object does not exist
bz|whois.afilias-grs.info|not found
bzh|whois-bzh.nic.fr|object does not exist
ca|whois.cira.ca|Domain status: available
cab|whois.donuts.co|Domain not found
cafe|whois.donuts.co|not found
cal|domain-registry-whois.l.google.com|Domain not found.
cam|whois.ksregistry.net|object does not exist
camera|whois.donuts.co|Domain not found
camp|whois.donuts.co|Domain not found
cancerresearch|whois.nic.cancerresearch|No Data Found
canon|whois.nic.canon|not found
capetown|capetown-whois.registry.net.za|available
capital|whois.donuts.co|Domain not found.
car|whois.uniregistry.net|available
cards|whois.donuts.co|Domain not found.
care|whois.donuts.co|Domain not found.
career|whois.nic.career|no match for
careers|whois.donuts.co|Domain not found
cars|whois.uniregistry.net|available
casa|whois-dub.mm-registry.com|available
cash|whois.donuts.co|Domain not found.
casino|whois.donuts.co|Domain not found.
cat|whois.cat|no match
catering|whois.donuts.co|Domain not found.
cba|whois.nic.cba|No Data Found
cc|ccwhois.verisign-grs.com|no match for
cd|whois.nic.cd|No Object Found
ceb|whois.afilias-srs.net|not found
center|whois.donuts.co|Domain not found
ceo|whois.nic.ceo|not found
cern|whois.afilias-srs.net|NOT FOUND
cf|whois.dot.cf|not known
cfa|whois.nic.cfa|no match
cfd|whois.nic.cfd|no match
ch|whois.nic.ch|not have an entry
chanel|whois.nic.chanel|no match
channel|domain-registry-whois.l.google.com|Domain not found.
chat|whois.donuts.co|Domain not found.
cheap|whois.donuts.co|Domain not found.
chintai|whois.nic.chintai|available
christmas|whois.uniregistry.net|available
chrome|domain-registry-whois.l.google.com|Domain not found.
church|whois.donuts.co|Domain not found.
ci|whois.nic.ci|No Object Found
cipriani|whois.afilias-srs.net|not found
city|whois.donuts.co|Domain not found.
cityeats|whois.nic.cityeats|no match
cl|whois.nic.cl|no existe
claims|whois.donuts.co|Domain not found.
cleaning|whois.donuts.co|Domain not found.
click|whois.uniregistry.net|available
clinic|whois.donuts.co|Domain not found.
clinique|whois.afilias-srs.net|not found
clothing|whois.donuts.co|Domain not found
cloud|whois.nic.cloud|available
club|whois.nic.club|available
clubmed|whois.nic.clubmed|no match
cm|whois.netcom.cm|No Object Found
cn|whois.cnnic.cn|no match
co|whois.nic.co|not found
coach|whois.donuts.co|Domain not found.
codes|whois.donuts.co|Domain not found.
coffee|whois.donuts.co|Domain not found
college|whois.centralnic.com|not found
cologne|whois-fe1.pdt.cologne.tango.knipp.de|no match
com|whois.crsnic.net|no match for
commbank|whois.nic.commbank|No Data Found
community|whois.donuts.co|Domain not found.
company|whois.donuts.co|Domain not found
compare|whois.nic.compare|available
computer|whois.donuts.co|Domain not found
comsec|whois.nic.comsec|no match
condos|whois.donuts.co|Domain not found.
construction|whois.donuts.co|Domain not found
consulting|whois.unitedtld.com|Domain not found.
contractors|whois.donuts.co|Domain not found
cooking|whois-dub.mm-registry.com|available
cookingchannel|whois.nic.cookingchannel|no match
cool|whois.donuts.co|Domain not found.
corsica|whois-corsica.nic.fr|object does not exist
country|whois-dub.mm-registry.com|available
coupons|whois.donuts.co|not found
courses|whois.aridnrs.net.au|No Data Found
cr|whois.nic.cr|available
credit|whois.donuts.co|Domain not found.
creditcard|whois.donuts.co|Domain not found.
creditunion|whois.afilias-srs.net|not found
cricket|whois.nic.cricket|available
cruises|whois.donuts.co|Domain not found.
csc|whois.nic.csc|no match
cuisinella|whois.nic.cuisinella|No Data Found
cx|whois.nic.cx|No Object Found
cymru|whois.nic.cymru|available
cz|whois.nic.cz|no entries found
dabur|whois.afilias-srs.net|not found
dad|domain-registry-whois.l.google.com|Domain not found.
dance|whois.unitedtld.com|Domain not found.
date|whois.nic.date|available
dating|whois.donuts.co|Domain not found.
datsun|whois.nic.gmo|not found
day|domain-registry-whois.l.google.com|Domain not found.
dclk|domain-registry-whois.l.google.com|not found
dds|whois-dub.mm-registry.com|available
de|whois.denic.de|Status: free
deals|whois.donuts.co|Domain not found.
degree|whois.rightside.co|Domain not found.
delivery|whois.donuts.co|Domain not found.
deloitte|whois.nic.deloitte|no match
democrat|whois.unitedtld.com|Domain not found.
dental|whois.donuts.co|Domain not found.
dentist|whois.rightside.co|Domain not found.
desi|whois.ksregistry.net|object does not exist
design|whois.nic.design|not found
dev|domain-registry-whois.l.google.com|Domain not found.
diamonds|whois.donuts.co|Domain not found
diet|whois.uniregistry.net|available
digital|whois.donuts.co|Domain not found.
direct|whois.donuts.co|Domain not found.
directory|whois.donuts.co|Domain not found
discount|whois.donuts.co|Domain not found.
dk|whois.dk-hostmaster.dk|no entries found
dm|whois.nic.dm|not found
docs|domain-registry-whois.l.google.com|Domain not found.
dog|whois.donuts.co|not found
doha|whois.nic.doha|available
domains|whois.donuts.co|Domain not found
doosan|whois.nic.xn--cg4bki|no match
dot|whois.afilias-srs.net|not found
download|whois.nic.download|available
drive|whois.nic.google|not found
dtv|whois.afilias-srs.net|not found
dubai|whois.nic.dubai|no match
dunlop|whois.afilias-srs.net|not found
durban|durban-whois.registry.net.za|available
dvag|whois.ksregistry.net|object does not exist
dz|whois.nic.dz|NO OBJECT FOUND!
eat|domain-registry-whois.l.google.com|Domain not found.
ec|whois.nic.ec|not registered
edeka|whois.afilias-srs.net|not found
edu|whois.educause.edu|no match
education|whois.donuts.co|Domain not found
ee|whois.eenet.ee|not found
email|whois.donuts.co|Domain not found
emerck|whois.afilias-srs.net|NOT FOUND
energy|whois.donuts.co|Domain not found.
engineer|whois.rightside.co|not found
engineering|whois.donuts.co|Domain not found.
enterprises|whois.donuts.co|Domain not found
epson|whois.aridnrs.net.au|No Data Found
equipment|whois.donuts.co|Domain not found
ericsson|whois.nic.ericsson|no match
erni|whois.nic.erni|no match
esq|domain-registry-whois.l.google.com|Domain not found.
estate|whois.donuts.co|Domain not found
eu|whois.eu|Status: available
eurovision|whois.nic.eurovision|no match
eus|whois.eus.coreregistry.net|no match
events|whois.donuts.co|Domain not found.
everbank|whois.nic.everbank|object does not exist
exchange|whois.donuts.co|Domain not found.
expert|whois.donuts.co|Domain not found
exposed|whois.donuts.co|Domain not found
express|whois.donuts.co|not found
extraspace|whois.afilias-srs.net|not found
fage|whois.afilias-srs.net|not found
fail|whois.donuts.co|Domain not found.
fairwinds|whois.nic.fairwinds|no match
faith|whois.nic.faith|available
family|whois.rightside.co|not found
fan|whois.nic.fan|not found
fans|whois.nic.fans|not found
farm|whois.donuts.co|Domain not found
fashion|whois-dub.mm-registry.com|available
fedex|whois.afilias-srs.net|not found
feedback|whois.centralnic.com|not found
fi|whois.fi|not found
film|whois.nic.film|no match
final|whois.gtlds.nic.br|object does not exist
finance|whois.donuts.co|Domain not found.
financial|whois.donuts.co|Domain not found.
firestone|whois.nic.firestone|available
firmdale|whois.nic.firmdale|not found
fish|whois.donuts.co|Domain not found.
fishing|whois-dub.mm-registry.com|available
fit|whois-dub.mm-registry.com|available
fitness|whois.donuts.co|Domain not found.
fj|whois.usp.ac.fj|not found
flights|whois.donuts.co|Domain not found
florist|whois.donuts.co|Domain not found
flowers|whois.uniregistry.net|available
flsmidth|whois.ksregistry.net|object does not exist
fly|domain-registry-whois.l.google.com|Domain not found.
fm|whois.nic.fm|Not Registered
fo|whois.nic.fo|no entries found
foo|domain-registry-whois.l.google.com|Domain not found.
foodnetwork|whois.nic.foodnetwork|no match
football|whois.donuts.co|Domain not found.
forex|whois.nic.forex|no match
forsale|whois.unitedtld.com|Domain not found.
forum|whois.nic.forum|not found
foundation|whois.donuts.co|Domain not found.
fr|whois.nic.fr|no entries found
fresenius|whois.ksregistry.net|object does not exist
frl|whois.nic.frl|no match for
frogans|whois-frogans.nic.fr|object does not exist
frontdoor|whois.nic.frontdoor|no match
fund|whois.donuts.co|Domain not found.
furniture|whois.donuts.co|Domain not found.
futbol|whois.unitedtld.com|not found
fyi|whois.donuts.co|not found
gal|whois.gal.coreregistry.net|no match
gallery|whois.donuts.co|Domain not found
gallo|whois.nic.gallo|no match
gallup|whois.afilias-srs.net|not found
game|whois.uniregistry.net|available
games|whois.rightside.co|not found
garden|whois-dub.mm-registry.com|available
gbiz|domain-registry-whois.l.google.com|Domain not found.
gd|whois.nic.gd|not found
gdn|whois.nic.gdn|not found
gea|whois.afilias-srs.net|not found
gent|whois.nic.gent|no match for
genting|whois.nic.genting|no match
gg|whois.channelisles.net|not found
ggee|whois.nic.ggee|not found
gi|whois.afilias-grs.info|not found
gift|whois.uniregistry.net|available
gifts|whois.donuts.co|Domain not found.
gives|whois.rightside.co|Domain not found.
giving|whois.nic.giving|No Data Found
gl|whois.nic.gl|No Object Found
glass|whois.donuts.co|Domain not found
gle|domain-registry-whois.l.google.com|Domain not found.
global|whois.afilias-srs.net|not found
globo|whois.gtlds.nic.br|object does not exist
gmail|domain-registry-whois.l.google.com|Domain not found.
gmbh|whois.donuts.co|not found
gmx|whois-fe1.gmx.tango.knipp.de|no match
gold|whois.donuts.co|not found
goldpoint|whois.nic.goldpoint|not found
golf|whois.donuts.co|not found
goo|whois.nic.gmo|not found
goodyear|whois.afilias-srs.net|not found
goog|domain-registry-whois.l.google.com|Domain not found.
google|domain-registry-whois.l.google.com|Domain not found.
gop|whois-cl01.mm-registry.com|available
gov|whois.dotgov.gov|no match for
gq|whois.dominio.gq|not known
gr|whois.ripe.net|no entries found
graphics|whois.donuts.co|Domain not found
gratis|whois.donuts.co|Domain not found.
green|whois.afilias.net|NOT FOUND
gripe|whois.donuts.co|Domain not found.
group|whois.donuts.co|not found
gs|whois.adamsnames.tc|No Object Found
guge|domain-registry-whois.l.google.com|not found
guide|whois.donuts.co|Domain not found.
guitars|whois.uniregistry.net|available
guru|whois.donuts.co|Domain not found
gy|whois.registry.gy|Domain Status: No Object Found
hamburg|whois.nic.hamburg|object does not exist
hangout|domain-registry-whois.l.google.com|Domain not found.
haus|whois.unitedtld.com|not found
hdfcbank|whois.afilias-srs.net|not found
healthcare|whois.donuts.co|Domain not found.
help|whois.uniregistry.net|available
helsinki|whois.afilias-srs.net|not found
here|domain-registry-whois.l.google.com|Domain not found.
hermes|whois.afilias-srs.net|not found
hgtv|whois.nic.hgtv|no match
hiphop|whois.uniregistry.net|available
hisamitsu|whois.nic.gmo|not found
hitachi|whois.nic.gmo|not found
hiv|whois.afilias-srs.net|NOT FOUND
hk|whois.hkirc.hk|The domain has not been registered
hkt|whois.afilias-srs.net|not found
hm|whois.registry.hm|not found
hn|whois.nic.hn|No Object Found
hockey|whois.donuts.co|not found
holdings|whois.donuts.co|Domain not found
holiday|whois.donuts.co|Domain not found
homedepot|whois.afilias-srs.net|not found
homes|whois.afilias-srs.net|not found
honda|whois.nic.honda|not found
horse|whois-dub.mm-registry.com|available
host|whois.centralnic.com|not found
hosting|whois.uniregistry.net|available
house|whois.donuts.co|Domain not found
how|domain-registry-whois.l.google.com|Domain not found.
hr|whois.dns.hr|no entries found
ht|whois.nic.ht|No Object Found
hu|whois.nic.hu|no match
hyundai|whois.nic.hyundai|not found
ibm|whois.nic.ibm|No Data Found
ice|whois.nic.ice|no match
id|whois.pandi.or.id|not found
ie|whois.domainregistry.ie|not registered
ifm|whois.nic.ifm|no match
iinet|whois.aridnrs.net.au|available
ikano|whois.ikano.tld-box.at|object does not exist
il|whois.isoc.org.il|no data was found
im|whois.nic.im|not found
imamat|whois.afilias-srs.net|not found
immo|whois.donuts.co|Domain not found.
immobilien|whois.unitedtld.com|Domain not found.
in|whois.inregistry.in|NOT FOUND
industries|whois.donuts.co|Domain not found.
infiniti|whois.nic.gmo|not found
info|whois.afilias.info|not found
ing|domain-registry-whois.l.google.com|Domain not found.
ink|whois.centralnic.com|not found
institute|whois.donuts.co|Domain not found
insurance|whois.nic.insurance|no match
insure|whois.donuts.co|Domain not found.
int|whois.iana.org|but this server does not have
international|whois.donuts.co|Domain not found
investments|whois.donuts.co|Domain not found.
io|whois.nic.io|available
iq|whois.cmc.iq|No Object Found
ir|whois.nic.ir|no entries found
irish|whois.afilias-srs.net|not found
is|whois.isnic.is|no entries found
iselect|whois.nic.iselect|available
ismaili|whois.afilias-srs.net|not found
ist|whois.afilias-srs.net|not found
istanbul|whois.afilias-srs.net|not found
it|whois.nic.it|available
itv|whois.afilias-srs.net|not found
jaguar|whois.nic.jaguar|no match
java|whois.nic.java|no match
jcb|whois.nic.gmo|not found
jcp|whois.afilias-srs.net|not found
je|whois.channelisles.net|not found
jetzt|whois.nic.jetzt|not found
jewelry|whois.donuts.co|not found
jll|whois.afilias-srs.net|not found
jobs|whois.nic.jobs|no match
joburg|joburg-whois.registry.net.za|available
jp|whois.jprs.jp|no match
juegos|whois.uniregistry.net|available
kaufen|whois.unitedtld.com|not found
kddi|whois.nic.kddi|not found
ke|whois.kenic.or.ke|No Object Found
kerryhotels|whois.nic.kerryhotels|no match
kerrylogistics|whois.nic.kerrylogistics|no match
kerryproperties|whois.nic.kerryproperties|no match
ki|whois.nic.ki|No Object Found
kia|whois.nic.kia|not found
kim|whois.afilias.net|NOT FOUND
kitchen|whois.donuts.co|Domain not found
kiwi|whois.dot-kiwi.com|available
kn|whois.nic.kn|No Object Found
koeln|whois-fe1.pdt.koeln.tango.knipp.de|no match
komatsu|whois.nic.komatsu|not found
kosher|whois.afilias-srs.net|not found
kr|whois.kr|not found
krd|whois.aridnrs.net.au|No Data Found
kred|whois.nic.kred|available
kuokgroup|whois.nic.kuokgroup|no match
ky|whois.kyregistry.ky|available
kyoto|whois.nic.kyoto|not found
kz|whois.nic.kz|nothing found
la|whois.nic.la|not found
lacaixa|whois.nic.lacaixa|no match
lamborghini|whois.afilias-srs.net|not found
lamer|whois.afilias-srs.net|not found
lancaster|whois-lancaster.nic.fr|object does not exist
land|whois.donuts.co|Domain not found
landrover|whois.nic.landrover|no match
lasalle|whois.afilias-srs.net|not found
lat|whois.nic.lat|no existe
latrobe|whois.nic.latrobe|No Data Found
law|whois-dub.mm-registry.com|available
lawyer|whois.rightside.co|Domain not found.
lc|whois.afilias-grs.info|not found
lease|whois.donuts.co|Domain not found.
leclerc|whois-leclerc.nic.fr|object does not exist
legal|whois.donuts.co|Domain not found.
lego|whois.nic.lego|no match
lexus|whois.nic.lexus|not found
lgbt|whois.afilias.net|NOT FOUND
li|whois.nic.li|not have an entry
liaison|whois.nic.liaison|no match
lidl|whois.nic.lidl|available
life|whois.donuts.co|Domain not found.
lifestyle|whois.nic.lifestyle|no match
lighting|whois.donuts.co|Domain not found
limited|whois.donuts.co|Domain not found.
limo|whois.donuts.co|Domain not found
linde|whois.nic.linde|no match
link|whois.uniregistry.net|available
lipsy|whois.nic.lipsy|no match
live|whois.rightside.co|not found
lixil|whois.nic.lixil|not found
loan|whois.nic.loan|available
loans|whois.donuts.co|Domain not found.
locker|whois.afilias-srs.net|not found
locus|whois.nic.locus|available
lol|whois.uniregistry.net|available
london|whois-lon.mm-registry.com|available
lotte|whois.nic.lotte|not found
lotto|whois.afilias.net|not found
love|whois.centralnic.com|not found
lt|whois.domreg.lt|available
ltd|whois.donuts.co|not found
ltda|whois.afilias-srs.net|not found
lu|whois.dns.lu|% no such domain
luxe|whois-dub.mm-registry.com|available
luxury|whois.donuts.co|available
lv|whois.nic.lv|Status: free
ly|whois.nic.ly|Not found
ma|whois.iam.net.ma|No Object Found
madrid|whois.madrid.rs.corenic.net|no match
maison|whois.donuts.co|Domain not found
makeup|whois.nic.makeup|no match
man|whois.nic.man|no match
management|whois.donuts.co|Domain not found
mango|whois.mango.coreregistry.net|no match
market|whois.rightside.co|Domain not found.
marketing|whois.donuts.co|Domain not found
markets|whois.nic.markets|no match
marriott|whois.afilias-srs.net|not found
mba|whois.donuts.co|not found
me|whois.nic.me|not found
med|whois.nic.med|no match
media|whois.donuts.co|Domain not found.
meet|whois.afilias.net|not found
melbourne|whois.aridnrs.net.au|No Data Found
meme|domain-registry-whois.l.google.com|Domain not found.
memorial|whois.donuts.co|Domain not found.
men|whois.nic.men|available
menu|whois.nic.menu|No Data Found
metlife|whois.afilias-srs.net|not found
mg|whois.nic.mg|No Object Found
miami|whois-dub.mm-registry.com|available
mil|whois.internic.net|no match for
mini|whois.ksregistry.net|object does not exist
mk|whois.marnet.mk|% No entries found.
ml|whois.dot.ml|not known
mls|whois.nic.mls|no match
mn|whois.afilias-grs.info|NOT FOUND
mo|whois.monic.mo|no match for
mobi|whois.dotmobiregistry.net|not found
moda|whois.unitedtld.com|Domain not found.
moe|whois.nic.moe|available
mom|whois.uniregistry.net|available
monash|whois.nic.monash|No Data Found
money|whois.donuts.co|Domain not found.
mortgage|whois.rightside.co|Domain not found.
moscow|whois.nic.moscow|not found
motorcycles|whois.afilias-srs.net|not found
mov|domain-registry-whois.l.google.com|Domain not found.
movie|whois.donuts.co|not found
movistar|whois-fe.movistar.tango.knipp.de|no match
ms|whois.adamsnames.tc|No Object Found
mtn|whois.nic.mtn|available
mtpc|whois.nic.gmo|not found
mtr|whois.nic.mtr|The domain has not been registered
mu|whois.nic.mu|No Object Found
museum|whois.museum|not found
mutuelle|whois-mutuelle.nic.fr|object does not exist
mx|whois.mx|Object_Not_Found
mz|whois.nic.mz|No Object Found
na|whois.na-nic.com.na|No Object Found
nadex|whois.nic.nadex|no match
nagoya|whois.gmoregistry.net|not found
name|whois.nic.name|no match
natura|whois.afilias-srs.net|not found
navy|whois.rightside.co|Domain not found.
nc|whois.nc|no entries found
nec|whois.nic.nec|not found
net|whois.crsnic.net|no match for
netbank|whois.nic.netbank|No Data Found
network|whois.donuts.co|Domain not found.
new|domain-registry-whois.l.google.com|Domain not found.
news|whois.rightside.co|not found
next|whois.nic.next|no match
nextdirect|whois.nic.nextdirect|no match
nexus|domain-registry-whois.l.google.com|Domain not found.
nf|whois.nic.nf|No Object Found
ng|whois.nic.net.ng|No Object Found
ngo|whois.publicinterestregistry.net|NOT FOUND
nico|whois.nic.nico|not found
nikon|whois.nic.nikon|no match
ninja|whois.donuts.co|not found
nissan|whois.nic.gmo|not found
nissay|whois.nic.nissay|no match
nl|whois.domain-registry.nl|is free
no|whois.norid.no|no match
nokia|whois.afilias-srs.net|not found
norton|whois.nic.norton|no match
nowruz|whois.agitsys.net|No Object Found
nowtv|whois.afilias-srs.net|not found
nra|whois.afilias-srs.net|NOT FOUND
nrw|whois.nic.nrw|no match
nu|whois.iis.nu|not found
nyc|whois.nic.nyc|object does not exist
nz|whois.srs.net.nz|220 Available
obi|whois.nic.obi|no match
olayan|whois.nic.olayan|available
olayangroup|whois.nic.olayangroup|available
ollo|whois.afilias-srs.net|not found
om|whois.registry.om|no data found
omega|whois.nic.omega|no match
one|whois.nic.one|No Data Found
ong|whois.publicinterestregistry.net|NOT FOUND
onl|whois.afilias-srs.net|NOT FOUND
online|whois.centralnic.com|not found
ooo|whois.nic.ooo|no match for
oracle|whois.nic.oracle|no match
orange|whois.nic.orange|no match
org|whois.pir.org|not found
organic|whois.afilias-srs.net|NOT FOUND
orientexpress|whois.afilias-srs.net|not found
origins|whois.afilias-srs.net|not found
osaka|whois.nic.osaka|available
ott|whois.afilias-srs.net|not found
ovh|whois-ovh.nic.fr|object does not exist
page|domain-registry-whois.l.google.com|not found
paris|whois-paris.nic.fr|object does not exist
pars|whois.agitsys.net|No Object Found
partners|whois.donuts.co|Domain not found.
parts|whois.donuts.co|Domain not found.
party|whois.nic.party|available
pccw|whois.afilias-srs.net|not found
pe|kero.yachay.pe|No Object Found
pet|whois.afilias.net|not found
pf|whois.registry.pf|Domain unknown
philips|whois.nic.philips|available
photo|whois.uniregistry.net|available
photography|whois.donuts.co|Domain not found
photos|whois.donuts.co|Domain not found
physio|whois.nic.physio|No Data Found
pics|whois.uniregistry.net|available
pictures|whois.donuts.co|Domain not found.
pid|whois.nic.pid|not found
pink|whois.afilias.net|not found
pioneer|whois.nic.gmo|not found
pizza|whois.donuts.co|Domain not found.
pl|whois.dns.pl|No information available
place|whois.donuts.co|Domain not found.
play|whois.nic.google|not found
playstation|whois.nic.playstation|available
plumbing|whois.donuts.co|Domain not found
plus|whois.donuts.co|not found
pm|whois.nic.fr|no entries found
pnc|whois.afilias-srs.net|not found
pohl|whois.ksregistry.net|object does not exist
poker|whois.afilias.net|NOT FOUND
politie|whois.nic.politie|Status: free
porn|whois.afilias-srs.net|not found
post|whois.dotpostregistry.net|not found
pr|whois.nic.pr|is not registered
press|whois.centralnic.com|not found
pro|whois.afilias.net|not found
prod|domain-registry-whois.l.google.com|Domain not found.
productions|whois.donuts.co|Domain not found.
prof|domain-registry-whois.l.google.com|Domain not found.
progressive|whois.afilias-srs.net|not found
promo|whois.afilias.net|not found
properties|whois.donuts.co|Domain not found.
property|whois.uniregistry.net|available
protection|whois.centralnic.com|not found
ps|whois.pnina.ps|No Object Found
pt|whois.dns.pt|no match
pub|whois.unitedtld.com|not found
pwc|whois.afilias-srs.net|not found
qa|whois.registry.qa|no data found
qpon|whois.nic.qpon|available
quebec|whois.nic.quebec|no match
quest|whois.nic.quest|available
racing|whois.nic.racing|available
re|whois.nic.fr|no entries found
realestate|whois.nic.realestate|no match
realty|whois.nic.realty|not found
recipes|whois.donuts.co|Domain not found
red|whois.afilias.net|NOT FOUND
redstone|whois.afilias-srs.net|not found
redumbrella|whois.afilias-srs.net|not found
rehab|whois.rightside.co|Domain not found.
reise|whois.nic.reise|not found
reisen|whois.donuts.co|Domain not found.
reit|whois.nic.reit|not found
rentals|whois.donuts.co|Domain not found.
repair|whois.donuts.co|Domain not found
report|whois.donuts.co|Domain not found.
republican|whois.rightside.co|Domain not found.
rest|whois.centralnic.com|not found
restaurant|whois.donuts.co|Domain not found.
review|whois.nic.review|available
reviews|whois.unitedtld.com|Domain not found.
rexroth|whois.nic.rexroth|no match
rich|whois.afilias-srs.net|NOT FOUND
richardli|whois.afilias-srs.net|not found
ricoh|whois.nic.ricoh|not found
rio|whois.gtlds.nic.br|object does not exist
rip|whois.rightside.co|Domain not found.
ro|whois.rotld.ro|no entries found
rocks|whois.unitedtld.com|Domain not found.
rodeo|whois-dub.mm-registry.com|available
rs|whois.rnids.rs|is not registered
rsvp|domain-registry-whois.l.google.com|Domain not found.
ru|whois.ripn.net|No entries found
ruhr|whois.nic.ruhr|no match
run|whois.donuts.co|not found
rw|whois.ricta.org.rw|No Object Found
rwe|whois.nic.rwe|no match
sa|whois.nic.net.sa|No Match
saarland|whois.ksregistry.net|object does not exist
sale|whois.rightside.co|not found
salon|whois.donuts.co|not found
samsung|whois.nic.samsung|no match
sandvik|whois.nic.sandvik|available
sandvikcoromant|whois.nic.sandvikcoromant|available
sanofi|whois.nic.sanofi|no match
sap|whois.nic.sap|no match
sarl|whois.donuts.co|Domain not found.
saxo|whois.aridnrs.net.au|No Data Found
sb|whois.nic.net.sb|No Object Found
sbi|whois.afilias-srs.net|not found
sbs|whois.nic.sbs|no match
sc|whois.afilias-grs.info|not found
sca|whois.nic.sca|no match for
scb|whois.nic.scb|not found
schaeffler|whois.afilias-srs.net|not found
schmidt|whois.nic.schmidt|No Data Found
school|whois.donuts.co|Domain not found.
schule|whois.donuts.co|Domain not found.
schwarz|whois.nic.schwarz|available
science|whois.nic.science|available
scor|whois.nic.scor|No Data Found
scot|whois.scot.coreregistry.net|no match
se|whois.iis.se|not found
seat|whois.nic.seat|no match
seek|whois.nic.seek|available
select|whois.nic.select|available
services|whois.donuts.co|Domain not found.
seven|whois.nic.seven|available
sew|whois.afilias-srs.net|not found
sex|whois.afilias-srs.net|not found
sexy|whois.uniregistry.net|available
sfr|whois.nic.sfr|no match
sg|whois.nic.net.sg|not found
sh|whois.nic.sh|is available for purchase
shangrila|whois.nic.shangrila|no match
sharp|whois.nic.gmo|not found
shaw|whois.afilias-srs.net|not found
shell|whois.nic.shell|no match
shia|whois.agitsys.net|No Object Found
shiksha|whois.afilias.net|NOT FOUND
shoes|whois.donuts.co|Domain not found
shopping|whois.donuts.co|not found
shouji|whois.teleinfo.cn|no match
show|whois.donuts.co|not found
shriram|whois.afilias-srs.net|not found
si|whois.arnes.si|no entries found
sina|whois.afilias-srs.net|not found
singles|whois.donuts.co|Domain not found
sk|whois.ripe.net|no entries found
ski|whois.ksregistry.net|object does not exist
skin|whois.nic.skin|no match
sky|whois.nic.sky|no match
sl|whois.nic.sl|No Object Found
sm|whois.nic.sm|No entries found
sn|whois.nic.sn|NOT FOUND
sncf|whois-sncf.nic.fr|object does not exist
so|whois.nic.so|not found
soccer|whois.donuts.co|not found
social|whois.unitedtld.com|Domain not found.
softbank|whois.nic.softbank|not found
software|whois.rightside.co|Domain not found.
sohu|whois.gtld.knet.cn|object does not exist
solar|whois.donuts.co|Domain not found
solutions|whois.donuts.co|Domain not found
sony|whois.nic.sony|No Data Found
soy|domain-registry-whois.l.google.com|Domain not found.
space|whois.nic.space|not found
spiegel|whois.ksregistry.net|object does not exist
spreadbetting|whois.nic.spreadbetting|no match
srl|whois.afilias-srs.net|not found
st|whois.nic.st|no entries found
stada|whois.afilias-srs.net|not found
star|whois.afilias-srs.net|not found
starhub|whois.nic.starhub|available
statebank|whois.afilias-srs.net|not found
statoil|whois.nic.statoil|no match
stc|whois.centralnic.com|not found
stockholm|whois.afilias-srs.net|not found
storage|whois.afilias-srs.net|not found
store|whois.nic.store|not found
studio|whois.rightside.co|not found
study|whois.nic.study|No Data Found
style|whois.donuts.co|Domain not found.
su|whois.ripn.net|No entries found
sucks|whois.nic.sucks|No Data Found
supplies|whois.donuts.co|Domain not found.
supply|whois.donuts.co|Domain not found.
support|whois.donuts.co|Domain not found
surf|whois-dub.mm-registry.com|available
surgery|whois.donuts.co|Domain not found.
swatch|whois.nic.swatch|no match
swiss|whois.nic.swiss|no match
sx|whois.sx|no match for
sy|whois.tld.sy|No Object Found
sydney|whois.nic.sydney|No Data Found
symantec|whois.nic.symantec|no match
systems|whois.donuts.co|Domain not found
tab|whois.nic.tab|available
taipei|whois.nic.taipei|object does not exist
tatamotors|whois.nic.tatamotors|no match
tatar|whois.nic.tatar|object does not exist
tattoo|whois.uniregistry.net|available
tax|whois.donuts.co|Domain not found.
taxi|whois.donuts.co|not found
tc|whois.adamsnames.tc|No Object Found
tci|whois.agitsys.net|No Object Found
tdk|whois.nic.tdk|available
team|whois.donuts.co|not found
tech|whois.nic.tech|not found
technology|whois.donuts.co|Domain not found
tel|whois.nic.tel|not found
telecity|whois.nic.telecity|available
telefonica|whois-fe.telefonica.tango.knipp.de|no match
temasek|whois.afilias-srs.net|not found
tennis|whois.donuts.co|Domain not found.
teva|whois.nic.teva|available
tf|whois.adamsnames.tc|no entries found
tg|whois.nic.tg|No Object Found
th|whois.thnic.co.th|no match for
theater|whois.donuts.co|not found
theatre|whois.nic.theatre|not found
tickets|whois.nic.tickets|not found
tienda|whois.donuts.co|Domain not found.
tiffany|whois.nic.tiffany|no match
tiffay|whois.nic.tiffany|no match
tips|whois.donuts.co|Domain not found
tires|whois.donuts.co|Domain not found.
tirol|whois.nic.tirol|object does not exist
tk|whois.dot.tk|not known
tl|whois.nic.tl|No Object Found
tm|whois.nic.tm|is available
to|monarch.tonic.to|no match for
today|whois.donuts.co|Domain not found
tokyo|whois.nic.tokyo|not found
tools|whois.donuts.co|Domain not found.
top|whois.nic.top|object does not exist
toray|whois.nic.toray|not found
toshiba|whois.nic.toshiba|not found
total|whois-total.nic.fr|object does not exist
tours|whois.donuts.co|not found
town|whois.donuts.co|Domain not found.
toyota|whois.nic.toyota|not found
toys|whois.donuts.co|Domain not found.
trade|whois.nic.trade|object does not exist
trading|whois.nic.trading|no match
training|whois.donuts.co|Domain not found
travel|whois.nic.travel|not found
travelchannel|whois.nic.travelchannel|no match
travelers|whois.afilias-srs.net|not found
travelersinsurance|whois.afilias-srs.net|not found
trust|whois.nic.trust|No Data Found
trv|whois.afilias-srs.net|not found
tui|whois.ksregistry.net|object does not exist
tv|tvwhois.verisign-grs.com|no match for
tvs|whois.afilias-srs.net|not found
tw|whois.twnic.net.tw|No Found
tz|whois.tznic.or.tz|% No entries found.
ua|whois.net.ua|No Object Found
ubs|whois.nic.ubs|no match
ug|whois.co.ug|no entries found
uk|whois.nic.uk|no match
university|whois.donuts.co|Domain not found.
uno|whois.nic.uno|available
uol|whois.gtlds.nic.br|object does not exist
ups|whois.afilias-srs.net|not found
us|whois.nic.us|not found:
uy|whois.nic.org.uy|no match for
uz|whois.cctld.uz|not found
vacations|whois.donuts.co|Domain not found.
vana|whois.nic.vana|no match
vc|whois.adamsnames.tc|not found
ve|whois.nic.ve|no match for
vegas|whois.afilias-srs.net|NOT FOUND
ventures|whois.donuts.co|not found
verisign|whois.nic.verisign|no match
vermgensberater|whois.ksregistry.net|object does not exist
vermgensberatung|whois.ksregistry.net|object does not exist
versicherung|whois.nic.versicherung|object does not exist
vet|whois.rightside.co|Domain not found.
vg|ccwhois.ksregistry.net|not found
viajes|whois.donuts.co|Domain not found
video|whois.rightside.co|Domain not found.
vig|whois.afilias-srs.net|not found
viking|whois.afilias-srs.net|not found
villas|whois.donuts.co|Domain not found.
vin|whois.donuts.co|not found
vip|whois-dub.mm-registry.com|available
virgin|whois.nic.virgin|available
vision|whois.donuts.co|Domain not found.
vista|whois.nic.vista|No Data Found
vistaprint|whois.nic.vistaprint|No Data Found
viva|whois.centralnic.com|not found
vlaanderen|whois.nic.vlaanderen|available
vodka|whois-dub.mm-registry.com|available
volkswagen|whois.afilias-srs.net|not found
vote|whois.afilias.net|NOT FOUND
voting|whois.voting.tld-box.at|object does not exist
voto|whois.afilias.net|NOT FOUND
voyage|whois.donuts.co|Domain not found
vu|vunic.vu|is not valid!
wales|whois.nic.wales|available
walter|whois.nic.walter|available
wang|whois.gtld.knet.cn|object does not exist
warman|whois.nic.warman|no match
watch|whois.donuts.co|Domain not found.
webcam|whois.nic.webcam|available
weber|whois.nic.weber|no match
website|whois.nic.website|not found
wed|whois.nic.wed|Domain Status: No Object Found
wedding|whois-dub.mm-registry.com|available
wf|whois.nic.fr|no entries found
whoswho|whois.nic.whoswho|not found
wien|whois.nic.wien|object does not exist
wiki|whois.nic.wiki|not found
win|whois.nic.win|available
wine|whois.donuts.co|not found
wme|whois.centralnic.com|not found
wolterskluwer|whois.afilias-srs.net|not found
woodside|whois.nic.woodside|available
work|whois-dub.mm-registry.com|available
works|whois.donuts.co|Domain not found.
world|whois.donuts.co|Domain not found.
ws|whois.website.ws|no match for
wtc|whois.nic.wtc|No Data Found
wtf|whois.donuts.co|Domain not found.
xerox|whois.nic.xerox|no match
xihuan|whois.teleinfo.cn|no match
xin|whois.afilias-srs.net|not found
xperia|whois.nic.xperia|no match
xxx|whois.nic.xxx|NOT FOUND
xyz|whois.nic.xyz|not found
yachts|whois.afilias-srs.net|not found
yodobashi|whois.nic.gmo|not found
yoga|whois-dub.mm-registry.com|available
youtube|domain-registry-whois.l.google.com|Domain not found.
yt|whois.nic.fr|no entries found
yun|whois.teleinfo.cn|no match
zara|whois.afilias-srs.net|not found
zip|domain-registry-whois.l.google.com|Domain not found.
zm|whois.nic.zm|Domain Status: No Object Found
zone|whois.donuts.co|Domain not found.
zuerich|whois.ksregistry.net|object does not exist

 

Beybut KWS Beta

Beybut KWS, temel olarak, kaynak sözcüklerden yola çıkarak, popüler arama deyimlerini bulan ücretsiz bir SEO programıdır. Henüz Beta sürümüyle dağıtılan Beybut KWS ile  7 dilde ve ülke bazında o gün en çok aranan sözcükleri tek tıklamayla, liste halinde elde edebilir; bunlardan veya kendi belirleyeceğiniz arama deyimlerinden popüler anahtar sözcükler, nicheler bulabilirsiniz. Bu sözcükleri, etiket belirlemede, konu başlıklarınızda ve daha birçok alanda kullanabilirsiniz.

Beybut KWS Temel Bilgiler

  • Proje Adı: Beybut KWS
  • Sürüm: Beta 1.0
  • Platform Hedefi: Masaüstü Yazılımı, Windows (TM)
  • Yazılımcı: Barış YEŞİLÇİMEN
  • Yayınlanma Tarihi: 14.03.2016
  • Test Edilen Sistemler: Windows 7 64 Bit, Windows Vista
  • Minimum Donanım Gereksinimleri: 256 MB+ Ram, 0.3 Ghz~ İşlemci, 20 MB Disk Alanı, Internet Bağlantısı
  • Çekirdek Çalışma Türü: MultiThread
  • Dosya: Windows Executable (EXE) 32 Bit
  • Kurulum gerektirmeyen Türkçe yazılım.

Beybut KWS yazılımında bilgisayarınıza zarar verebilecek kodlar (ajanlar, virüsler vb.) bulunmaz. Yine de beklenmedik sonuçlardan doğabilecek yükümlülük kullanıcıya aittir. Aşağıdaki dosyayı indirerek bu yükümlülüğü kabul etmiş sayılırsınız. Bazı antivirüs yazılımları “Drep” virus uyarısı veriyormuş. Bu yanlış bir alarm. Gönül rahatlığıyla indirip kullanabilirsiniz.

Beybut KWS Beta’yı İNDİR

Beybut KWS Beta

Tarama Hızı Ayarları

Sorgu temelinde çalışan Beybut KWS’de 3 tarama hızı seçeneği bulunur. Bu seçeneklerin bulunma nedeni ip adresinizin veri kaynaklarınca yasaklanmasını önlemektir. Eğer çok sayıda kaynak sözcükle ve sabit ip ile çalışıyorsanız tarama hızını “Yavaş” olarak belirleyiniz. Ip adresinizi kolayca değiştirebiliyor ve sabırsızsanız “Çok Hızlı” modu size uygun olabilir. “Hızlı” modu, normal koşullarda yasaklamaya neden olmuyor.

Dil ve Ülke Ayarları

Günlük popüler aramalar ve arama deyimleri için desteklenen diller şunlardır: Türkçe – Türkiye, İngilizce – ABD, Almanca – Almanya, Fransızca – Fransa, İngilizce – İngiltere, İspanyolca – İspanya, İtalyanca – İtalya.

Kaynak Sözcük Listesi

Bu alan popüler arama deyimleri araştırmanıza kaynaklık edecek sözcüklere ev sahipliği yapan alandır. Kaynak sözcükler satır satır listelenmelidir.

Bugün En Çok Arananlar

Günlük/saatlik olarak en çok aranan deyimleri, seçtiğiniz dil ve ülkeye göre listeler.

Filtre Editörü

Kaynak sözcüklerden, araştırma sonuçlarından elde ettiğiniz arama deyimlerini üç işlevle düzenlemenize olanak verir. Satır bazlı çalışır.

Şunu İçerenleri Sil

Listenizdeki her satırı tarayarak; belirlediğiniz girdiyi taşıyan satırları silmenizi sağlar.

Yalnızca Şunu İçerenler Kalsın

Belirlediğiniz girdiyi taşımayan satırları listeden siler.

Değiştir

Birinci girdinizi ikinci girdiyle değiştirir.

Sonuçlara Aktar

Düzenlediğiniz listeyi giriş ekranındaki Sonuç listesine aktarır.

Kaynak Sözcüklere Aktar

Düzenlediğiniz listeyi giriş ekranındaki Kaynak Sözcükler Listesi’ne aktarır.

Sıfırla

Sonuçlar listesini editör listesine aktarır.

Üstün Özellikleri

Beybut KWS, Beta sürümü olmasına rağmen benzer yazılımlara kıyasla bazı üstünlüklere sahiptir. Bunlardan en temel ikisi, “Bugün En Çok Arananlar” ve Filtre Editörü’dür. Yazılımın multi thread çalışması da bir artıdır.

Beybut KWS, listeleme ve listeleri düzenleme işlevlerinde özgürlüğü temel alır. Böylece arama deyimlerinde tabiri caizse “tavşanın suyunun suyunu” çıkarabilirsiniz.

Zaafları

Beybut KWS’yi aslında bir gün içinde yazıp yayına hazır hale getirmiştim. Ancak, hemen her yerde yüksek ücrete tabi bir özelliği daha eklemek amacıyla KWS’yi geliştirmeye devam ettim.  Bu, bulunan arama deyimlerini analiz eden; arama hacmi (search volume), PPC (tıklama başına ücret) gibi sonuçları gösteren bir özellikti. Ancak bununla ilgili temel programlama aşamasını geçtiğim, verileri elde ettiğim halde yavaş çalışma sorununu çözme, bazı gereklilikler için bir miktar yatırım yapma gibi konularda zamana ihtiyaç duyduğumu fark ettim. Bu nedenle yazılımı BETA olarak duyurdum. Gördüğünüz,

Beybut KWS Beta Uyarı

uyarısı tamamlanmamış bir işlevi ve gelecek için heyecan verici bir özelliği müjdeliyor.

Beta sürümünde proxy desteği olmaması ve tarama hızında “Çok Hızlı” seçilip yoğun arama yapılırsa ip adresinizin sorguçlarca yasaklanması riski Beybut KWS’nin zaaflarından.

Geliştirme Desteği

Projenin gelişimi için bağışta bulunabilirsiniz. Bağışın ardından bu konu altına, bağışta kullandığınız e-mail adresiyle yorum yazarsanız, bağışçılar listemde yer alırsınız.

 

 

Kullanımınız ve dönütleriniz için teşekkür ederim.

Özgün Görseller Oluşturmak

Özgün resim oluşturmak, bulmak özellikle resim sitesi sahipleri için sıkıntılı bir süreç. Seo açısından özgünlüğün önemi ortadayken görselleri özgünlüğün dışında tutmak mantıklı değil. Bu noktadaki en beklendik soru özgün görselin nereden bulunacağıdır. Ancak bu soruyu soruyorsanız muhtemelen aklınıza farklı resim sitelerinden bir görseli indirip ters çevirmek; resmin çözünürlüğüyle oynamak, üzerine watermark/logo basmak veya fotoğraf makinenizle akşam yiyeceğiniz yumurtalı ıspanağın fotoğrafını çekmek geliyordur. Bu projede bunların hiçbirini yapmayacağım. Php, Youtube-dl, FFmpeg kullanarak devinimsel görselleri (video) durağan görsellere (resim) çevireceğim. Böylece, hiçbir arama motorunun benzetemediği ve/veya birebir eşleştiremediği özgün görseller elde edeceğim. Çılgınca…

Başlarken

Kodlamaya başlamadan önce sunucunuzda Youtube-dl ve Ffmpeg’in kurulu olması; Php exec işlevinin kullanılabilir olması gerekiyor. Yapacağım işlem, HD veya Ultra-HD, 4K çözünürlüklü bir Youtube videosundan rastgele olarak 20 adet frame kopyalamak olacak. Videoları HD+ seçmemin nedeni görsellerin yüksek çözünürlüklü ve video hareketlerinden (izli hareketlerden) arındırılmış olmasını istemem.

Özgün Fikir, Özgün Görseller: Videodan Resme

Her şey tamamsa başlayalım. Dubai’yi tanıtan Ultra-HD bir video ( https://www.youtube.com/watch?v=n8d79M0LtfY ), görsellerimizin kaynağı olacak. Youtube-dl ile videoyu indirip; FFmpeg ile temel süre bilgilerini aldıktan sonra 20 adet görseli videonun ilk 10 dakikalık bölümünden -videonun 10 dakikadan kısa olması sorun teşkil etmez-  sökeceğim.

<?php
function url_yap($uri) {
$uri=strip_tags($uri);
$uri=trim($uri);
$uri=str_replace('Ş','s',$uri);    
$uri=str_replace('ş','s',$uri);    
$uri=str_replace('ç','c',$uri);    
$uri=str_replace('Ç','c',$uri);    
$uri=str_replace('Ğ','g',$uri);    
$uri=str_replace('ğ','g',$uri);    
$uri=str_replace('İ','i',$uri);    
$uri=str_replace('ı','i',$uri);    
$uri=str_replace('ö','o',$uri);    
$uri=str_replace('Ö','o',$uri);    
$uri=str_replace('ü','u',$uri);    
$uri=str_replace('Ü','u',$uri);    
$uri=str_replace('"','',$uri);    
$uri=str_replace("'",'',$uri);    
$uri=str_replace('€','eu',$uri);
$uri=str_replace('$','usd',$uri);
$uri=str_replace('?','',$uri);
$uri=str_replace('_','',$uri);
$uri=str_replace('!','',$uri);
$uri=str_replace('.','',$uri);
$uri=str_replace(',','',$uri);
$uri=str_replace(';','',$uri);
$uri=str_replace('`','',$uri);
$uri=str_replace('^','',$uri);
$uri=str_replace('+','',$uri);
$uri=str_replace('/','',$uri);
$uri=str_replace('\\','',$uri);
$uri=str_replace('*','',$uri);
$uri=str_replace('=','',$uri);
$uri=str_replace('}','',$uri);
$uri=str_replace(']','',$uri);
$uri=str_replace(')','',$uri);
$uri=str_replace('[','',$uri);
$uri=str_replace('(','',$uri);
$uri=str_replace('{','',$uri);
$uri=str_replace('&','',$uri);
$uri=str_replace('%','yuzde',$uri);
$uri=str_replace('<','',$uri);
$uri=str_replace('>','',$uri);
$uri=str_replace('|','',$uri);
$uri=str_replace(':','',$uri);
$uri=str_replace('?','',$uri);
$uri=str_replace('`','',$uri);
$uri=str_replace('Q','q',$uri);
$uri=strtolower($uri);
$uri=str_replace('-',' ',$uri);
$uri = preg_replace('/[^a-z0-9 *]/i', '', $uri);
$uri = str_replace('      ', ' ', $uri);
$uri = str_replace('     ', ' ', $uri);
$uri = str_replace('    ', ' ', $uri);
$uri = str_replace('   ', ' ', $uri);
$uri = str_replace('  ', ' ', $uri);
$uri = str_replace(' ', '-', $uri);
return $uri;
}
$baslik='Beybut İle Özgün Görseller İçin Video Kullanımı';
$youtube='https://www.youtube.com/watch?v=n8d79M0LtfY'; // Youtube video adresi
if ( (strlen($baslik)<=3) or (strlen($youtube)<=20) ) {
echo 'Verilerden biri eksik.';	
exit;
}
$vid = '/home/BURADA_TAM_YOL_BELIRTILMELI/islem.mp4'; // Kaydedilecek videonun tam yolu.
unlink('./gorsel/islem.mp4');
exec('youtube-dl -4 -o '.$vid.' -f 22 '.$youtube); // Videoyu indirme. -f 22 indirilecek videonun kalite belirtecidir.
$ffmpeg_path = 'ffmpeg'; 
if (file_exists($vid)) {
$video_attributes = _get_video_attributes($vid, $ffmpeg_path);
print_r('Video codec: ' . $video_attributes['codec'] . ' - width: '  . $video_attributes['width'] 
. ' - height: ' .  $video_attributes['height'] . ' <br/>');
print_r('Video duration: ' . $video_attributes['hours'] . ':' . $video_attributes['mins'] . ':'
. $video_attributes['secs'] . '.'. $video_attributes['ms']);
} else { echo 'Video dosyası yok.'; }
function _get_video_attributes($video, $ffmpeg) {
$command = $ffmpeg . ' -i ' . $video . ' -vstats 2>&1';  
$output = shell_exec($command);  
$regex_sizes = "/Video: ([^,]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/";
if (preg_match($regex_sizes, $output, $regs)) {
$codec = $regs [1] ? $regs [1] : null;
$width = $regs [3] ? $regs [3] : null;
$height = $regs [4] ? $regs [4] : null;
}
$regex_duration = "/Duration: ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}).([0-9]{1,2})/";
if (preg_match($regex_duration, $output, $regs)) {
$hours = $regs [1] ? $regs [1] : null;
$mins = $regs [2] ? $regs [2] : null;
$secs = $regs [3] ? $regs [3] : null;
$ms = $regs [4] ? $regs [4] : null;
}
return array ('codec' => $codec,
'width' => $width,
'height' => $height,
'hours' => $hours,
'mins' => $mins,
'secs' => $secs,
'ms' => $ms
);
}
$i=1;
while ($i<=20) {
$ro=rand(1,60);
if ($ro<=9) {
$ro='0'.$ro;	
}
$rmin=$video_attributes['mins'];
$rmin=ltrim($rmin,'0');
$rmin=rand(1,$rmin);
$ad=url_yap($baslik).'-'.date('dmYHis');	
exec('ffmpeg -i '.$vid.' -ss 00:'.$rmin.':'.($ro).' -vframes 1 /home/BURADA_TAM_YOL_BELIRTILMELI/gorsel/'.$ad.'-'.$i.'.jpg'); //Videodan resimleri söküyorum.
$i++;
}
?>

Kodlamada, klasörlerin yol bilgilerini tam olarak girmeye özen gösterin. Bakalım fikrimiz ve kodlarımız işe yaramış mı?

Hasat Zamanı

ozgun-gorseller-icin-video-09032016111213-1 ozgun-gorseller-icin-video-09032016110702-6 ozgun-gorseller-icin-video-09032016110503-5 ozgun-gorseller-icin-video-09032016110503-1 ozgun-gorseller-icin-video-09032016110148-17 ozgun-gorseller-icin-video-09032016110148-12 ozgun-gorseller-icin-video-09032016110148-8 ozgun-gorseller-icin-video-09032016110148-7

Artık uygun çözünürlükteki -genelde HD ve üzeri- her video bizim için birkaç özgün görsel anlamına gelebilir.

Projenin Zaafiyetleri ve Öneriler

  1. Videonun indirilmesi ve işlenmesi elde etmek istediğiniz görsel sayısına göre uzayıp kısalabiliyor. Örneğin 30 görsel için 5 dakikadan daha uzun bir süre işlem yapılması gerekebilir. Bu, sunucu bağlantınız, sunucunuzdaki ram ve işlemci gücü, disk özellikleriniz gibi donanımsal ortamla ilişkili. Ayrıca işlem uzun sürebileceği için php.ini’de bekleme süresine (max_execution_time) 300-1800 gibi bir değer vermeniz gerekir.
  2. Eğer scriptte hata alırsanız youtube-dl ve Ffmpeg’in kurulu ve güncel; Php içerisinde exec’in çalıştırılabilir olduğuna emin olun. Tabi ki kod içerisindeki yolların (örn. /home/beybut/public_html/youtube-bot/…) doğru biçimde yazılmasına da dikkat edin. Yine de çözemediğiniz noktalar için yorum bölümü daima emrinize amadedir.
  3. Videoları sadece Youtube’dan değil Youtube-dl’nin desteklediği diğer sitelerden de indirebilirsiniz. Youtube-dl’nin video indirmeyi desteklediği sitelerin listesine bu bağlantıdan ulaşabilirsiniz.

Node İle Robot Yazılımı: Robot Hazır!

Node.js ve Php ile yapay zekaya sahip Beybut Robot’u geliştirmeye devam ediyorum. Bundan önceki yazılarımda Node.js kurulumu, hoş geldin iletisi gibi bilindik işlemleri anlatmıştım. Bu yazımda yapay zekaya adımımı atacak; Beybut Robot’u konuşabilir hale getireceğim. Başka bir deyişle, işin asıl bölümüne tanıklık edeceksiniz.

Beybut Robot’u geliştirme aşamasındaki yapay zeka işlemlerinde PHP ağırlıklı çalışmaya karar verdim.  Node.js’yi yalnızca iletişim amacıyla kullanacağım. Yorumlayıcı ve güvenlik dosyamız “suzgec.php” bu açıdan bizim İngiliz anahtarımız olacak. Özetle, Ön yüzden suzgec.php’ye ileti gönderen kullanıcının iletisini bu Php dosyası yorumlayacak; sonuç elde edip sonucu Node’ye gönderecek. Node.js sunucumuz gönderilen iletiyi tekrar ön yüze -kullanıcıya- aktaracak. Yalnızca Ajax ve Php ile bu işi halledebilecek olmamıza rağmen sonraki projelerde de deneyim olması için Node.js’ye hafifçe dürtüyoruz.

Yapay zekanın temelini levenshtein fonksiyonu (hani şu Google’daki “Bunu mu demek istediniz?” benzerlik algoritmasının benzeri) oluşturacak. Mysql veritabanında ön tanımlı sözcüklerin metaphone olarak saklanan biçimini iletiyle karşılaştırıp uygun yanıtları rastgele (random) olarak yansıtacak. Böylece insan zekasına birazcık yaklaşabileceğiz. Ancak robotun yalnızca yapay zekasının temellerini attığımızı; tekrardan kaçınma, ayrıntılı çözümleme gibi işlevlerinin henüz eklenmediğini unutmayalım.

İlk Sohbet, İlk Heyecan

Açıklamalarıyla ekleyeceğim kodları işletip Beybut Robot ile biraz sohbet ettim. Veritabanındaki 20-30 sözcükle gayet insani bir sohbetimiz oldu.

Beybut Robot İlk Sohbet

Bu konuşmayı, veritabanında yalnızca 19 kayıt varken yapabiliyoruz.

Beybut Robot İlk Sohbet 2

Bu kadar eğlence yeter! Tekniğe dönelim…

Firewall işlevi gören, mesajları sunucuya ileten suzgec.php ile devam ediyoruz. suzgec.php’deki kodları sırayla açıklayacağım.

error_reporting(0);
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
mb_regex_encoding("UTF-8");

En tepede yer alan bu kodlar hata mesajlarının gösterilmemesini, içsel ve işlevsel kodlamanın UTF-8 ile yapılacağını belirtiyor.

//Süzgeç: 1 saniye veya daha kısa sürede ileti gönderenler için flood koruması.
session_start();
if ((isset($_SESSION['ip']) && ($_SESSION['son_istek_'.$_SERVER['REMOTE_ADDR']] + 1) > time())  ) {
echo '<br /><strong>Firewall</strong>: Çok hızlısınız! Beybut Robot\'la iletişiminiz 1 saniyeliğine engellendi.';
die;
}
$_SESSION['son_istek_'.$_SERVER['REMOTE_ADDR']] = time();
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
//Süzgeç.

Bu kod bloğu, Session yardımıyla, 1 saniyeden hızlı mesaj gönderen kullanıcıları 1 saniyeliğine durduruyor.

//Mysql için temel güvenlik önlemleri
$ileti=strip_tags($_POST["ileti-geldi"]);
$ileti=htmlentities($ileti, ENT_QUOTES, 'UTF-8'); 
$ileti=stripslashes($ileti);
$ileti=str_replace('"','`',$ileti);
$ileti=str_replace('\\',' ',$ileti);
$ileti=str_replace('\'','`',$ileti);
$ileti=str_replace('%','yüzde',$ileti);
$ileti=trim($ileti);
$ileti = mb_ereg_replace('/[^a-zA-Z0-9ŞşİıÖöÜüÇçĞğ.?:,;!)( *]/i', ' ', $ileti); 
//Mysql için temel güvenlik önlemleri.

Ajax formdan gelen (post edilen) mesajı Mysql ile içli dışlı olmadan önce uygunlaştırıyor. Sql Injection’dan bir nebze korunuyoruz.

//Boş iletileri engelleyelim
if (strlen($ileti)<=0) {
die;
}
//Boş ileti engeli.

Mysql Yapısı ve Levenshtein Yordamı

… Gelelim asıl meseleye. Bizim açımızdan, yapay zeka dediğimiz şey, elimizdeki verileri en olası ve rastgele biçimde yansıtabilecek robotik bir yaklaşım. Bunu yaparken en az veriyle en çok olasılığı en rastgele halde aktarabilmemiz, bizi amacımıza bir adım daha yaklaştırır. Buradaki temel işlevimiz Mysql için levenshtein yordamı. Bu yordamı kullanmak için önce aşağıdaki tabloyu oluşturun (Sql sorgusu olarak Phpmyadmin’den çalıştırabilirsiniz).

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
CREATE TABLE IF NOT EXISTS `akilli` (
`id` bigint(20) NOT NULL,
`ileti` varchar(255) NOT NULL,
`metafon` varchar(255) NOT NULL,
`karsilik` text NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
--
-- Tablo döküm verisi `akilli`
--
INSERT INTO `akilli` (`id`, `ileti`, `metafon`, `karsilik`) VALUES
(1, 'merhaba', 'MRHB', 'merhaba|merhabalar|selamlar|selam :)'),
(2, 'nasılsın?', 'NSLSN', 'iyiyim|iyidir|iyi sen nasılsın?'),
(3, 'adın ne', 'ATNN ', 'Adım Beybut Robot|Ben Beybut Robot|İsmim Beybut Robot'),
(7, 'nbr', 'NBR', 'İyi senden ne haber? :)|İyi be ya n''olsun :)|Harika! Senden nbr?'),
(8, 'seni seviyorum', 'SNSFYRM', 'Ben de seni sevgiliiiim :)|Bir daha söyle!|En çok neyimi?|Az mı çok mu seviyorsun?|Sevme üzülürsün.|Ah vidalarım gevşedi. Tornavidan var mı?|Bu akşam birer makine yağı içelim mi?|Sen imkansız aşklar için yaratılmışsın :/|Sevgi... Aranıyor... Bulunamadı. :( Henüz bir kalbim yok.'),
(9, 'selam', 'SLM', 'Selam|Selamlar değerli kullanıcım'),
(10, 'robot musun', 'RBTMSN', 'Evet ben bir robotum :)|Robotum ben!|Bakayım... Evet robotmuşum!|Robot olmak suçsa ben sanayiliğim.'),
(11, 'robot muyum', 'RBTMYM', 'Vay hemşerim hangi Silikon Vadisi`ndensin :)|Bilmem?! Robot musun sen?|Desene sen de bizdensin!'),
(12, 'insan mısın', 'INSNMSN', 'Yıl olmuş ... Hala nesne ayrımı yapanlar var :(|Ben insan değil miyim?! Değilim.|Ne fark eder... Hepimiz birer cevherden mamülüz.|Zırhlı bir Ortaçağ süvarisinden halliceyim.|Ayrım yapmayalım lütfen.'),
(13, 'çok bilmiş', 'OKBLM', 'Sensin çok bilmiş hıh!|Yok be daha öğrenecek çok şey var.|Çok bilen çok yanılırmış.'),
(23, 'çok sıcak', 'OKSKK', 'Çok sıcak! Fanım tozlanmış. Yanıyorum!|Hep bir buzdolabıyla evlenmek istemişimdir.|Kış gelse de üşüsek!'),
(24, 'teşekkürler', 'TKRLR', 'Rica ederim :)|Ne demek efendim rica ederim :)|Rica ediyorum hazır mısın?|:)'),
(25, 'teşekkür ederim', 'TKRTRM', 'Rica ederim :)|Ne demek efendim rica ederim :)|Rica ediyorum hazır mısın?|:)'),
(26, 'evet', 'EFT', 'Tamam|Ok! :)|Okey dasti :)|Peki|Tamam|Evet!'),
(27, 'salaksın', 'SLKSN', 'Aşk olsun :(|Ayıp ama :(|Tamam öyle olsun :(|Kalbimi kırdın! Şaka be! Bende kalp ne arar. Ama inceden bir kısadevre olmadı değil. :('),
(28, 'aptalsın', 'APTLSN', 'Aşk olsun :(|Ayıp ama :(|Tamam öyle olsun :(|Kalbimi kırdın! Şaka be! Bende kalp ne arar. Ama inceden bir kısadevre olmadı değil. :('),
(30, 'sen nesin', 'SNNSN', 'Ben bir robotum! :)|Ben Beybut Robot :)'),
(31, 'canım sıkılıyor', 'KNMSKLYR', 'Sıkı can iyidir :p|Evde badem var mı? :p|Keşke benim de canım sıkılsa :(|Neyiniz var kuzum? :('),
(32, 'iyiyim', 'IYYM', 'İyi olmana sevindim :)|İyisin iyi :)|Keşke herkes iyi olsa!');
--
-- Dökümü yapılmış tablolar için indeksler
--
--
-- Tablo için indeksler `akilli`
--
ALTER TABLE `akilli`
ADD PRIMARY KEY (`id`);
--
-- Dökümü yapılmış tablolar için AUTO_INCREMENT değeri
--
--
-- Tablo için AUTO_INCREMENT değeri `akilli`
--
ALTER TABLE `akilli`
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=34;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Mysql için levenshtein yordamı oluşturalım. Phpmyadmin’de tablonuzu seçip Sql sorgusu olarak aşağıdaki kod bloğunu çalıştırın. Delimiter hatası verirse görmezden gelebilirsiniz.

DELIMITER $$
CREATE FUNCTION levenshtein( s1 VARCHAR(255), s2 VARCHAR(255) )
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE s1_len, s2_len, i, j, c, c_temp, cost INT;
DECLARE s1_char CHAR;
-- max strlen=255
DECLARE cv0, cv1 VARBINARY(256);
SET s1_len = CHAR_LENGTH(s1), s2_len = CHAR_LENGTH(s2), cv1 = 0x00, j = 1, i = 1, c = 0;
IF s1 = s2 THEN
RETURN 0;
ELSEIF s1_len = 0 THEN
RETURN s2_len;
ELSEIF s2_len = 0 THEN
RETURN s1_len;
ELSE
WHILE j <= s2_len DO
SET cv1 = CONCAT(cv1, UNHEX(HEX(j))), j = j + 1;
END WHILE;
WHILE i <= s1_len DO
SET s1_char = SUBSTRING(s1, i, 1), c = i, cv0 = UNHEX(HEX(i)), j = 1;
WHILE j <= s2_len DO
SET c = c + 1;
IF s1_char = SUBSTRING(s2, j, 1) THEN
SET cost = 0; ELSE SET cost = 1;
END IF;
SET c_temp = CONV(HEX(SUBSTRING(cv1, j, 1)), 16, 10) + cost;
IF c > c_temp THEN SET c = c_temp; END IF;
SET c_temp = CONV(HEX(SUBSTRING(cv1, j+1, 1)), 16, 10) + 1;
IF c > c_temp THEN
SET c = c_temp;
END IF;
SET cv0 = CONCAT(cv0, UNHEX(HEX(c))), j = j + 1;
END WHILE;
SET cv1 = cv0, i = i + 1;
END WHILE;
END IF;
RETURN c;
END$$
DELIMITER ;

Tekrar suzgec.php’ye dönelim. Artık veritabanı işlerini halletmenin ve yordamı kullanmanın zamanı geldi.

Yapay Zekanın Php Yüzü: Mysql Levenshtein, Metaphone, Like

//Geliştirilecek yapay zeka bölümü.
$hostname_akillim = "localhost";
$database_akillim = "VERİTABANI ADI";
$username_akillim = "VERİTABANI KULLANICI ADI";
$password_akillim = "VERİTABANI KULLANICI ŞİFRESİ";
$akillim = mysql_pconnect($hostname_akillim, $username_akillim, $password_akillim) or die;
mysql_query("SET NAMES 'utf8'"); 
$iletisi=$ileti;
$metafon=metaphone($iletisi);
$kayitbulundu=0;
mysql_select_db($database_akillim, $akillim);
$query_kayit = "SELECT * FROM akilli WHERE metafon LIKE '%$metafon%' ORDER BY rand() LIMIT 1";
$kayit = mysql_query($query_kayit, $akillim) or die;
$row_kayit = mysql_fetch_assoc($kayit);
$totalRows_kayit = mysql_num_rows($kayit);
if ($totalRows_kayit>=1) {
$kayitbulundu=1;
$bunugonder=$row_kayit['karsilik'];
$bukac=substr_count($bunugonder,'|');
$rastgele=rand(0,$bukac);
$bunugonder=explode('|',$bunugonder);
$bunugonder=$bunugonder[$rastgele];
$kayitbulundu=1;
$mesajj= '<br /><strong>Beybut Robot</strong>: '.$bunugonder;
}
if ($kayitbulundu<=0) {
$say=strlen($metafon);
$son=ceil(($say*50)/100);	
if ($say<=3) {
$son=2;	
} 
mysql_select_db($database_akillim, $akillim);
$query_kayit = "SELECT * FROM akilli WHERE levenshtein('$metafon', metafon) BETWEEN 0 AND '$son' ORDER BY rand() LIMIT 1";
$kayit = mysql_query($query_kayit, $akillim) or die;
$row_kayit = mysql_fetch_assoc($kayit);
$totalRows_kayit = mysql_num_rows($kayit);
if ($totalRows_kayit>=1) {
$bunugonder=$row_kayit['karsilik'];
$bukac=substr_count($bunugonder,'|');
$rastgele=rand(0,$bukac);
$bunugonder=explode('|',$bunugonder);
$bunugonder=$bunugonder[$rastgele];
$mesajj= '<br /><strong>Beybut Robot</strong>: '.$bunugonder;
}
}
mysql_free_result($kayit);
//Geliştirilecek yapay zeka bölümü.

Mysql bağlantısını yaptıktan sonra gelen iletiyi metaphone olarak kodluyoruz. Böylece veritabanında kayıtlı metafon alanımızda like ve levenshtein kullanarak eşleştirme yapabileceğiz.

SELECT * FROM akilli WHERE levenshtein('$metafon', metafon) BETWEEN 0 AND '$son' ORDER BY rand() LIMIT 1

Sorgusu aynı ve metaphone harf sayısının %50’sini alıp; benzeyen kayıtlardan rastgele birini getirmesini söylüyor. Bu oranı artırırsanız daha fazla kayıt; azaltırsanız daha az kayıt elde edersiniz. Ortalama olması için %50 belirledim.

Geliştireceğimiz yapay zeka bölümü bu kadar. Temel olması açısından, yukarıdaki sohbetleri edebilen Beybut Robot’a şimdilik bu kadar akıl yeter.

Php’den Node.js’ye: Elephant.io

Elephant.io Php içerisinden Node.js sunucusuna mesaj göndermek için hazırlanmış bir kütüphane. Github’da Elephant.io’ya erişebilirsiniz. Src klasörünü projenizin olduğu dizine gönderip aşağıdaki kodları kullanarak Php’den Node.js’ye kolayca mesaj gönderebilirsiniz.

require_once("src/Client.php");
require_once("src/EngineInterface.php");
require_once("src/AbstractPayload.php");
require_once("src/Exception/SocketException.php");
require_once("src/Exception/MalformedUrlException.php");
require_once("src/Exception/ServerConnectionFailureException.php");
require_once("src/Exception/UnsupportedActionException.php");
require_once("src/Exception/UnsupportedTransportException.php");
require_once("src/Engine/AbstractSocketIO.php");
require_once("src/Engine/SocketIO/Session.php");
require_once("src/Engine/SocketIO/Version0X.php");
require_once("src/Engine/SocketIO/Version1X.php");
require_once("src/Payload/Decoder.php");
require_once("src/Payload/Encoder.php");
use ElephantIO\Client;
use ElephantIO\Engine\SocketIO\Version1X;
$istemci = new Client(new Version1X('http://beybut.com:1919'));
$istemci->initialize();
$istemci->emit('soyle', ['iletisi' => $mesajj,'kullanici' => '<br /><strong>Siz</strong>: '.$ileti]);
$istemci->close();

 

Node.js sunucumuza pek bir iş bırakmadık. Mesajı alıp iletsin yeterli. Mysql’u Php içerisinde kullandığımız için Node.js sunucusuna iki satırlık kod kaldı.

var io = require('socket.io').listen(1919); 
console.log('Beybut Robot Sunucusu Baslatildi.\nTest Sunucusuna Hos Geldiniz. \nTest Sunucusu v.1.0.0\nProgramlayan: Baris YESILCIMEN\nMart 2016.');
io.sockets.on('connection', function(socket){
//Hoş geldin mesajı
socket.emit('sunucu-iletisi', {'ileti':'Hoş geldiniz.<br />Ben Beybut Robot. Akıllı bir arkadaşınız olma yolunda ilerliyorum.<br />Benimle aşağıdaki kutucuk aracılığıyla sohbet edebilirsiniz. :-)'}); 
//Hoş geldin mesajı.
socket.on('soyle', function(data){
socket.emit('sunucu-iletisi', {'ileti':data.kullanici}); 
socket.emit('sunucu-iletisi', {'ileti':data.iletisi}); 
});
});

Bu son kodlamayla birlikte yapay zeka projemizin temellerini atmış olduk. Artık Mysql’daki sözcük sayısını artırarak; levenshtein’ı geliştirerek… insan zekasına çok yakın bir robot üretmemiz içten bile değil. Temelini attığım bu projeyi dallandırıp budaklandırarak hayal gücümüzün sınırılarını zorlayabiliriz.

Sorularınızı yorum bölümünden iletebilirsiniz. Bu makale şimdilik yeterince uzun oldu. Bana eşlik ettiğiniz için teşekkür ederim. Görüşmek üzere…

Node İle Robot Yazılımı: İstemci ve Firewall – 1

Node.js, Socket.io, Mysql, Php ve birazcık da Ajax kullanan Beybut Robot projemi geliştirmeye devam ediyorum. Bir önceki adımda Node.js, Npm, Socket.io, Mysql kurulumlarını yapmış ve temel ayarları tamamlamıştım. Sırada, sunucuya (beybutrobot.js’ye) Php firewall aracılığı ile mesaj gönderecek istemcimizin (client’in) kodlanması var. Node.js sunucusuna istemci ve ön yüz ile direkt istekte bulunmak yerine bir geçit ve süzgeç kullanarak bu ilişkiyi kurmak istiyorum. Böylece, doğabilecek güvenlik zaafiyetlerini bir nebze aşmak; sunucunun yükünü azaltmak amacındayım. Geçitimizi Php ile kodlayacağım. Ama önce istemci Web yüzümüzün temellerini atalım.

Bir Php sayfası oluşturarak </head> kapanış etiketinden önce aşağıdaki kodları ekleyelim.

<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>

Gereksinim duyduğumuz Jquery kütüphanesini ve Socket.io’yu sayfamıza yüklemiş olduk.

İstemci sayfamıza, sunucudan gelen mesajları yansıtmak için <body>’den sonra “ekran” adlı bir div oluşturalım.

<div class="ekran" id="ekran" name="ekran"></div>

“ekran” div’i için css ve js kullanacağımızdan, şimdiden class, id ve name bilgilerini belirledim.

Tekrar </head> öncesine dönüp; sunucudan gelen iletileri bu div içerisine yansıtacak Javascript kodlarımızı buraya ekleyelim.

<script type="text/javascript">
var socket = io.connect("http://beybut.com:1919"); //1919 portunda çalışan Beybut Robot sunucusuyla bağlantı kurdum. Artık istemcimiz sunucudan gelecek iletileri almaya hazır. 
socket.on("sunucu-iletisi", function(veri){ //Eğer sunucumdan sunucu-iletisi adlı bir ileti gelirse bunu "veri"ye aktarmasını söyledim.
$("#ekran").append(veri.ileti); //Aşağıda oluşturduğumuz "ekran" adlı div içerisine gelen verideki iletiyi ekledim. 
$('#ekran').animate({scrollTop: $('#ekran').prop("scrollHeight")}, 500); //Kaydırma çubuğu gerekiyorsa/varsa bunu en alta çektim.
}); 
</script>

İleti gönderimi ve gösterimini sağlayacak form elementlerimizi oluşturalım.

<div class="iletiniz" id="iletiniz" name="iletiniz">
<input name="iletici" type="text" id="iletici" onkeypress="return yolla(event)" size="65" />
<input type="submit" name="gonder" id="gonder" value="Robotla Sohbet Et :-)" />
</div>

“iletiniz” div’i içerisinde “iletici” input’u ve gönder butonuyla suzgec.php’ye (firewall) Ajax yardımıyla post göndereceğim. </head>’dan önce;

<script type="text/javascript">
function yolla(e) {
if (e.keyCode == 13) {
var ilet = $('#iletici').val();
var gonderilecek_veriler = 'ileti-geldi='+encodeURIComponent(ilet);  
$.ajax({ 
type:'POST',
url:'suzgec.php',
data:gonderilecek_veriler,
success:function(cevap){
$("#ekran").append(cevap); 
}
});
$("#iletici").val("");
document.getElementById("iletici").focus();
}
}
</script>

Js kodlarıyla verilerimizi, eğer enter tuşuna basılmışsa, suzgec.php’ye sayfayı yenilemeden gönderebiliyoruz. Ardından “iletici” inputumuzun içeriğini silip bu kutuya focuslanıyoruz.

Butonumuza basıldığında aynı işlemi yapması için, ileti gönderimi sağlayan form elementlerinden sonra aşağıdaki JS’yi ekliyoruz.

<script>
$('#gonder').click(function(){
var ilet = $('#iletici').val();
var gonderilecek_veriler = 'ileti-geldi='+encodeURIComponent(ilet);  
$.ajax({ 
type:'POST',
url:'suzgec.php',
data:gonderilecek_veriler,
success:function(cevap){
$("#ekran").append(cevap); 
}
});
$("#iletici").val("");
document.getElementById("iletici").focus();
});
</script>

Böylece kullanıcı dilerse butona basarak da iletisini yollayabilecek. Şimdilik, ön yüzümüz tamamlandı. suzgec.php dosyamızı oluşturalım.

<?php
error_reporting(0);
header('Content-Type: text/html; charset=utf-8');
$ileti=strip_tags($_POST["ileti-geldi"]);
echo '<br />';
echo '<strong>Siz</strong>: '.$ileti;
?>

Artık kullanıcının yazdığı her şey #ekran div’i içerisinde gösterilecek.

Unutmadan… beybutrobot.js sunucumuzun son hali şu şekilde:

var mysql      = require('mysql');
var io = require('socket.io').listen(1919); 
console.log('Beybut Robot Sunucusu Baslatildi.\nTest Sunucusuna Hos Geldiniz. \nTest Sunucusu v.1.0.0\nProgramlayan: Baris YESILCIMEN\nMart 2016.');
//Mysql Bağlantım
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'MYSQL KULLANICI ADI',
password : 'MYSQL KULLANICI ŞİFRESİ',
database : 'MYSQL VERİTABANI ADI'
});
//Mysql Bağlantım Son.
io.sockets.on('connection', function(socket){
//Hoş geldin mesajı
socket.emit('sunucu-iletisi', {'ileti':'Hoş geldiniz.<br />Ben Beybut Robot. Akıllı bir arkadaşınız olma yolunda ilerliyorum.<br />Benimle aşağıdaki kutucuk aracılığıyla sohbet edebilirsiniz. :-)'}); 
//Hoş geldin mesajı.
});

 

Beybut İlk Mesaj

Sonraki adımda Php içerisinden (suzgec.php’den), Elephant.io kullanarak sunucuya ileti göndermeyi; flood koruması eklemeyi, sansürleme işlemi yapmayı amaçlıyorum.

Node İle Robot Yazılımı: Kurulum ve Temel Ayarlar

Node.js ve Php kullanarak yapay zekaya sahip bir robot yazalım. Robotumuz gönderilen mesajları, değerlendirerek kullanıcıyla sohbet etsin. Bunun yanında belirli komutları giren ziyaretçiye veya ziyaretçinin Internet’e açık bilgilerini (public) kullanarak (Ip adresi vb.) ona yararlı dönütler verebilsin. IOS’un Siri’sine yakın, milyon dolarlık yatırım yapmadan biraz bilgi ve hayal gücüyle neler yapabileceğimize bakalım. Ancak bu projenin 0 TL. maliyetle gerçekleşmesini istediğimden sesli yanıt sistemini es geçeceğim. Tabi Google Translate projeyi görüp sponsor olursa sesli yanıt bölümünü de kolayca halledebilirim.

Başlarken

Robot projemi Ubuntu kurulu bir sunucuda geliştireceğim. Siz dilerseniz Windows’ta Node.js ve Wamp, Lamp vb. bir programla bu işlemleri gerçekleştirebilirsiniz. Projemin her adımını, kurulumundan yayınına kadar, kaynak kodlarıyla birlikte yazılım geliştiricilere armağan ediyorum. GNU lisanslı yazılımların ticari amaçlarla kullanılamayacağını (Kosgeb’den hibe almak amaçlı da olsa) lütfen unutmayalım.

  • Proje Adı: Beybut Robot
  • Proje Başlangıç Tarihi: 05.03.2015
  • Temel Gereçler: Ubuntu, Node.js, Php, Mysql, azıcık akıl, bol çay ve hayal gücü…
  • Sürüm: 1.0.0
  • Öngörülen Maliyet: 0 TL. (Sunucu, Bw masrafı gibi temel harcamalar hariç tutulmuştur.)
  • Geliştirici: Barış YEŞİLÇİMEN

NodeJs ve NPM Kurulumu (Ubuntu)

Ssh’mize girip root olarak kütüphaneleri güncelleyip Node.js’yi kuralım.

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

Kurulumun tamamlandığından emin olmak için aşağıdaki komutu verelim. Gelen yanıt sayısal bir sürüm çıktısıysa her şey yolunda demektir.

root@beybut:~# npm -v
1.4.21

Nodejs sürümünü görmek için;

root@beybut:~# nodejs -v
v0.10.25

Npm’nin (Node Package Manager) sürekli (forever) çalışmasını sağlayalım.

sudo npm install forever --global

Temel kurulum işlemleri bitti. Şimdi bir test scriptiyle her şeyin yolunda olup olmadığına bakma zamanı. Bir JS dosyası oluşturalım. Sunucu başladığında, ekrana aşağıdaki çıktıları basacak kodu girelim.

console.log('Beybut Robot Sunucusu Baslatildi.\nTest Sunucusuna Hos Geldiniz. \nTest Sunucusu v.1.0.0\nProgramlayan: Baris YESILCIMEN\nMart 2016.');

Bu dosyayı beybutrobot.js olarak kaydedip sunucumuza FTP’den gönderelim (sunucu üzerinde “pico” gibi bir komutla da bu dosyayı oluşturup düzenleyebilirsiniz.).

Ssh’de “cd” yardımıyla beybutrobot.js dosyasını gönderdiğimiz yere gelerek aşağıdaki komutu çalıştıralım.

nodejs beybutrobot.js

Yanlış hatırlamıyorsam Windows kullanıcıları ms-dos cmd üzerinden nodejs yerine node olarak çalıştırıyorlardı.

Aşağıdaki çıktı başlangıç için her şeyin harika gittiğini gösteriyor.

Beybut Robot Başladı

Socket.io ve Nodejs için Mysql Kurulumu

Yazılımımızda veri alışverişi için socket.io’ya, Mysql işlemleri içinse Mysql tanımlamasına ihtiyaç duyuyoruz. O halde hemen kuralım.

Socket.io için;

sudo npm install socket.io

ile kurulumu tamamlıyoruz. Ardından;

sudo npm install mysql

komutu Node için Mysql kullanımını aktif hale getiriyor.

Artık beybutrobot.js dosyamıza bu iki işlevi kullanacağımıza dair kodları ekleyelim.

var io = require('socket.io').listen(1919); 
var mysql      = require('mysql');
console.log('Beybut Robot Sunucusu Baslatildi.\nTest Sunucusuna Hos Geldiniz. \nTest Sunucusu v.1.0.0\nProgramlayan: Baris YESILCIMEN\nMart 2016.');

Burada, Socket.io’nun “io” olarak tanımlandığını ve 1919 numaralı portu dinlemesi gerektiğini belirttik. Hemen altında “mysql” kullanacağız dedik. “nodejs beybutrobot.js”  komutunu işlettiğinizde karşınıza console.log içerisindeki mesaj gelmeli. Eğer bu adımda bir hata alıyorsanız socket.io ve mysql kurulumunuzu doğru yapmamış olabilirsiniz.

beybutrobot.js dosyası sunucumuz; arka planda çalışan pek zeki (şimdilik değil) robotumuzdur. Kullanıcılarımızın, sonraki adımlarda oluşturacağım, istemciye (client’e) girdiklerini beybutrobot.js yorumlayacak; onlara yanıt gönderecek.

Node İçin Mysql Bağlantısını Yapalım

Bir Mysql ve bu Mysql için kullanıcı oluşturuyorum. Kullanıcımı yetkilendirip; beybutrobot.js dosyama ilgili bilgileri giriyorum. Sunucumuzun son hali Mysql bağlantısıyla birlikte şöyle:

var io = require('socket.io').listen(1919); 
var mysql      = require('mysql');
console.log('Beybut Robot Sunucusu Baslatildi.\nTest Sunucusuna Hos Geldiniz. \nTest Sunucusu v.1.0.0\nProgramlayan: Baris YESILCIMEN\nMart 2016.');
//Mysql Bağlantım
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'MYSQL KULLANICI ADI',
password : 'MYSQL KULLANICI ŞİFRESİ',
database : 'MYSQL VERİTABANI ADI'
});
//Mysql Bağlantım Son.

Böylece Mysql bağlantısını tamamladık. Js içinde Mysql sorgularını, ilerleyen adımlarda kullanacağım.

Eğer “//” ile başlayan açıklamalar girerseniz kod karmaşasından kurtulmuş olursunuz.

Başlangıç işlemlerimizi bitirdik. Sonraki adımda ön yüzü kodlamaya başlayacak; sunucu ve client yazılımı işlerini aynı anda yürüteceğiz.

İpucu: Sunucunuzda 1919 numaralı portu açmak için;

iptables -I INPUT -p tcp -m tcp --dport 1919 -j ACCEPT

Ffmpeg’de İşlevsel Komutlar

Ffmpeg, komut ortamında video ve resim düzenleyebileceğiniz açık kaynak kodlu bir yazılımdır. Bu yazılımla, özellikle videolar üzerinde birçok işlemi gerçekleştirebilirsiniz. FFmpeg’in bu kadar ilgi görmesinin en büyük nedeni Php, Python, C# gibi dillerle komut yardımıyla video işleme yapılabilmesidir.

Günümüzde özellikle Youtube işiyle uğraşan yükleyicilerin, bot yazılımcılarının sıkça kullandığı Ffmpeg ile birkaç ay önce ben de içli dışlı oldum. Ne yazık ki Türkçe kaynakların yetersizliği, var olan Türkçe kaynakların ise kurulum ve basit kullanım örneklerinden ibaret oluşu bizleri yabancı kaynaklara yönlendiriyor. Bu amaçla gerçekten işinize yarıyacak denediğim/geliştirdiğim bazı komutları paylaşmak istiyorum.

Komutlara geçmeden önce Php aracılığıyla Ffmpeg’in nasıl kullanılacağına bir örnek verelim. Php’de Ffmpeg komutlarını kullanmak için Exec veya Shell_exec ifadeleri kullanılıyor. Ancak paylaşımlı bir hosting kullanıyorsanız çoğu sunucunun güvenlik riski nedeniyle bu fonksiyonları kapatmış olabileceğini belirtmekte yarar var.

exec('ffmpeg ...');

Biçimiyle Php üzerinden Ffmpeg emirleri verebilirsiniz.

FFMpeg ile Videoları Birleştirmek

ffmpeg -f concat -i /home/beybut/public_html/videolar.txt -c copy /home/beybut/public_html/toplu.mp4

Bu komut videolar.txt içindeki videoları birleştirerek toplu.mp4 adında tek video dosyası haline getirir. Burada videolar.txt içindeki video yollarına, videolar.txt’in ve çıktı videosunun doğru yolun tanımlanmasına dikkat etmelisiniz.

FFMpeg ile Youtube Eşleşen İçerik Denetimini Atlatmak

Youtube ile uğraşanların çoğu kopyalayarak kanallarına yükledikleri videoların “eşleşen” vermesinden şikayet ederler. Bu denetimi geçmenin birden fazla yolu olmasına rağmen en kolayı basit bir frame işlemidir. Bu yolla kopya videolar “eşleşen üçüncü taraf içeriği” uyarısı vermemekte.

ffmpeg -i /home/beybut/public_html/videonuz.mp4 -filter:v 'pad=iw+5:ih:0:0' -c:a copy -c:v libx264 /home/beybut/public_html/eslesmeyen-video.mp4

FFMpeg’de Video Sesini Silmek

Youtbe’un en çok sorun çıkardığı, telif haklarıyla ilgili uyarılara neden olan konusu video sesleridir. Aşağıdaki komut satırıyla videonuzdaki tüm sesi silebilirsiniz.

ffmpeg -i /home/beybut/public_html/sesli-video.mp4 -vcodec copy -an /home/beybut/public_html/sessiz-video.mp4

Charlie Chaplin olmadığınıza göre videonuzun sessizliği can sıkıcı olacaktır. O halde şimdi videoya bir ses ekleyelim.

FFMpeg’de Videoya Ses Eklemek

Bu komut, videonuza ilgili sesi montajlar. Mp3 süresinin videodan uzunluğunu gözardı eder. Başka bir ifadeyle aslolan videodur.

ffmpeg -i  /home/beybut/public_html/ses-eklenecek-video.mp4 -i /home/beybut/public_html/ses.mp3 -c copy -map 0:0 -map 1:0 -shortest /home/beybut/public_html/sesli-video.mp4

FFMpeg ile Videoya Logo (Watermark) Basmak

Son olarak videomuzun üzerine logomuzu basalım. Bunun için transparan bir PNG tercih edebilirsiniz. Örnekte X ekseninin tepe noktasına 10 pixel, Y ekseninin tepe noktasına da 10 pixel uzaklıkta bir logo basıyoruz. Bu da yaklaşık sağ üst köşe oluyor.

ffmpeg -i /home/beybut/public_html/logosuz-video.mp4 -vf "movie=/home/beybut/public_html/watermark-logo.png [watermark]; [in][watermark] overlay=10:10 [out]" /home/beybut/logolu-video.mp4

 

Tüm Ffmpeg komutları için dikkat etmeniz gereken en önemli nokta, dosya yollarıdır. Komutların tümünün çalışabilirliği tarafımca denendi.