Pazar, Kasım 18, 2018

"ChromeCast Stream with mkChrome" Python app



Bir önceki post'ta bahsettiğim Phyton uygulamasını da aşağıda paylaşıyorum. Aklımda uygulamanın tam halini koymak vardı aslında. Çünkü "webcast" ve "filecast" seçenekleri de var. Ancak en basit haliyle paylaşmak daha anlaşılır olması için mantıklı geldi.

Uygulamanın çalışması için mkChrome kurulu olmalı.


from tkinter import *
window = Tk()
window.geometry('450x300')
window.title("ChromeCast Stream with mkChrome")


def stream():
    link = txt.get()
    tik = Label('window,text=link')
    tik.grid(column=0, row=4)
    command = "mkchromecast -y " + link + " --video"
    import os
    os.system(command)

lbl = Label(window, text="Youtube Link:")
txt = Entry('window,width=20')
btn = Button(window, text="Stream to ChromeCast", command=stream)

lbl.grid(column=0, row=0)
txt.grid(column=1, row=0)
btn.grid(column=0, row=1)

window.mainloop()

Perşembe, Kasım 15, 2018

Egemen, Ubuntu ve Chromecast hikayesi

Merhaba,
Ne kadar çok zamandır ara vermişim. Kendimden de utandım desem yeri var.
Aslında, bunca yıllık ölü toprağını üstümden atmamı sağlayan, yeniden nefes aldım dedirten hikayeyi yazmaya geldim.
Blog adı Aylin-ux ama galiba artık burada "Egemen" hikayeleri olacak gibi. Eski laptopa merak saldı son günlerde. Pek de kullanmadığımdan içinde yarım yamalak çalışan bir Windows vardı, Madem merak saldın adam gibi birşey kullan/öğren diyerek geçenlerde Ubuntu kurduk. Kurduk diyorum çünkü "kuralım" dedikten sonra günlerce "baba ne zaman kuracağız?" diye gezindi çevremde. Eski laptop olunca da çeşitli donanımsal sorunlar da yaşadık iş biraz uzadı. Ancak sonunda kurduk ve artık Linux kullanmaya başladı. (Aklıma geldi; yıllar önce SDÜ'de İnternet Haftası için yaptığımız bir etkinliğe rahmetli Mustafa Akgül Hoca gelmişti ve bir Linux sunumum vardı. "Linux zor diyorlar, ne alakası var.." diyerek sahneye İsmail Hoca'nın oğlu Şerif Ali'yi çıkarmıştım. (O da şimdi Bilgisayar Mühendisliği okuyor) o zamanlar okuma bile bilmiyordu. 5-6 yaşında. Birkaç şey yapmıştı sahnede.) Neyse ya amma uzattım. Yazacak anlatacak ne çok şey var. (Yaşlanma belirtileri vol:1)
Ubuntu kurduk, Egemen hayatından memnun, "Ubuntu Software"  ile istediği programları indiriyor, hatta bazen alakasız birşey indiriyor anlayamıyor çünkü oyun değil. Ama inatla ne olduğunu çözmek için başımın etini yiyor. Minecraft'a kadar hemen herşeyi bulduk alışık olduğu.
Ancak ip geçen hafta sonu koptu. En sevdiği şeylerden birisi evdeki "chromecast" ile youtube'da bulduğu videoyu TV'ye aktarmak. Ancak ubutu software içinde chrome yok. Başta hiç aklıma da gelmedi gidip sayfasına bakmak. (Bazen basit şeyler için gözümüz kör oluyor ve zora yöneliyoruz çok teknik düşünmekten**). Google'dan "how to stream from ubuntu to chromecast" diye aradım. Oradan da (doğal olarak) başka bir uygulama  buldum. "mkchromecast" diye python ile yazılmış bir uygulama. Ancak sorun şu; uygulama komut satırında. Çok basit bir komut ama Egemen'e öğretmek zor. (Anında ezberler gerçi o da ayrı konu). Bir süredir ben de phyton ile uğraşıyorum, aklıma bunun için bir GUI uygulama yazmak geldi. Kabaca, Egemen istediği bir videonun linkini kopyalasın, yapıştırsın ve TV'ye aktarılsın.
Daha önce hiç python'da GUI yazmamıştım. Hemen onu araştırdım. Çok zor değil zaten. Bir kaç saat içinde basit programım hazırdı. Böylece GUI dünyasına da el atmış oldum. Ama asıl paylaşmak istediğim; suyun altında durup (ben en fazla 4-5 sn. durabiliyorum gerçi)  kafanı çıkardığında deriin bir nefes alırsın ya, işte tam da öyleyim. OOoohhhhhhh....

Uygulama hakkında detayları ayrı bir post olarak atacağım. Hem biraz elden geçirmek de istiyorum yayınlamadan önce. Zaten eksikleri de çok. Ama şu an çalışıyor. Heyecanımı paylaşmak için yazdım. Ancak bir ekran görüntüsü ile bu yazı bitsin. ;-)

** Not: Bu arada yazmayı unutmayayım, Ubuntu için Chrome var. Chrome web sayfasından download diyerek kolayca kurulabiliyor. (deb paketi indirilerek) Ayrıca chromecast ile de bağlantı kurabiliyor. Benin uygulamam hem öğrenme/proje amaçlı oldu, hem de dediğim gibi nefes içindi... ;-)